STM32的USRT通讯实现
1.实现平台
两块STM开发板,杜邦线;
- 初始化板子上的串口;
- 为串口开启中断;
- 根据需要制定两个板子的通讯协议。
2.实现过程
2.1协议制定
在工程实践的过程中,常常需要两个板子进行通讯来实现功能。现在常常使用的通讯方法常常是CAN通信,TTL通讯,RS485通讯,RS232通讯,I2C,I2S,SPI等。UART也是一种常用的通讯方式,这种通讯方式为全双工。
制定协议时应注意以下几点:
-
起始符,结束符和校验位 在为制定通讯协议的时候,首先应该确定发送数据的起始符,结束符和校验位;在设置起始符,结束符的时候应该避免和发送的内容发生冲突。结束符最好可以设置多位,一般可以设置两个位作为结束符;校验位需要在结束符之前;起始位一般没有特殊要求的话,设置一位即可。
-
校验方式
一般校验方式可以是奇检验,偶校验,CRC校验。现在用的较多的是CRC校验,CRC校验可以看引用的第三篇博文,讲的比较清楚。
接下来给个UART通讯例子:
通讯协议:
该协议中,起始符是0x44和0x59;结束符是0xFF,0x0A;
接下来介绍实现
实现在STM32ZET6开发板上,UART4,正点原子
UART4初始化: