STM32串口通信
(1) 硬件接线说明
- 采用4针的串口(TXD、RXD、GND、VCC),然后通过CH340芯片进行转换,就可以直接通过USB口转串口的方式达到和计算机通信的目的。
- 如果采用有线方式与PC机进行通信,则需要用到CH340转换芯片,数据会通过USART1串口传输。
(1) 串口通信参数
- 串口通信属于全双工异步通信,所以通信双方必须具有发送端(TXD)与接收端(RXD),由于异步通信不需要时钟来进行数据同步,但是通信双方必须提前约定好字符格式与通信速率。
(3)字符格式
- 一般在进行串口通信的时候,需要通信双方在协议层规定好传输的数据包(字符帧)的格式,字符帧由起始位、数据位、校验位、停止位组成。这样通信双方就可以利用起始位和停止位实现同步。 关于字符格式的相关参数的说明可以参考STM32中文参考手册第26.3.1章节。
(4)通信速率
- 在串口通信中,如果设置好了通信的字符格式,还需要通信双方约定好通信速率,也就是单位时间内传输的有效二进制数的个数,所以也被称为波特率(bps baud pre second)。
- 一般串口通信常用的波特率为9600bps、38400bps、57600bps、115200bps,当然也有其他的选择,波特率有对应的计算公式,可以参考STM32中文参考手册的第26.3.4章节。
举个例子:大多数使用串口通信的传感器的字符格式都是8bit数据位、1bit停止位、无奇偶校验位,当然还必须有1bit起始位。
所以一帧数据是10bit,如果通信速率设置为9600bps,则单位时间内能传输的数据帧为9600/10 = 960帧。
参考李明轩老师第9天的笔记