Untitled

写在前面:

    一个嵌入式系统往往不能单独工作,需要多个设备协同运作。这就需要通信,而通信的本质就是信息的传递,就像我们日常面对面的交流一样。在STM32微控制器的世界中,通信的目的就是将一个设备上的数据传输到另一个设备上。为了使这种数据传输能够顺利进行,双方必须使用相同的语言,这就涉及到通信协议。通信协议规定了数据传输的规则和格式,使得数据收发双方能够按照这些预定的规则正确地交换信息。

    本节课将介绍在单片机中常用的串口通信功能。串口是一种在单片机,传感器,执行模块等诸多设备上常用的通讯接口,在比赛中,可以通过串口读取遥控器发送来的数据,也可以通过串口读取超声波等传感器的数据,也可以使用串口在单片机和运行计算机视觉的电脑之间进行通讯。

通过本节课的学习,将掌握如何通过APB时钟计算串口的波特率,串口在cubeMX中的配置方法,串口的接收中断与空闲中断功能,串口的发送函数与发送中断。

1. 知识要点

1.1串行通信概念

   串口通信是一种常见的数据传输方式,简单来说,就是设备之间通过一根线一位一位地传输数据。串口通信就像一个英语听力考试,以下是详细的类比:
  1. 两根主要的线(发送线和接收线)
  2. 数据按照顺序发送和接收
  3. 预先约定好的传输速度和格式

1.2串口通信引脚介绍

   在串行通信中,TX、RX 和 GND 是三个关键的引脚,它们分别代表数据的发送、接收和接地。以下是对每个引脚的详细介绍:
  1. TX(Transmit)
  2. RX(Receive)
  3. GND(Ground)

1.3串口通信数据原理

串行通信是一种数据传输方式,它将数据一位一位地通过一条线传输到另一个设备。这个过程有点像把一长串的珠子一颗一颗地穿到一条线上,然后再一颗一颗地取下来。所以数据在传输前需要转换成二进制格式,这是因为计算机和电子设备只能处理二进制(0和1)。以下是数据变成二进制格式并通过串行通信发送的过程: