前言
由于这段时间搞了个安卓相关的项目,需要和安卓进行Uart通信。但是选用的芯片并没有自带uart功能,所以在充分评估项目后,考虑波特率不高的情况下,决定使用GPIO去模拟串口通信协议了。
提示:以下是本篇文章正文内容,下面案例可供参考
一、协议介绍
UART是一种通用串行数据总线,用于异步通信。UART能实现双向通信,在嵌入式设计中,常用于主机与辅助设备通信。UART包括RS232、RS449、RS423等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。而RS232等式对应各种异步串行通信口的接口标准和总线标准,它们规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容,实际上是属于通信网络中的物理层(最底层)的概念,与通信协议并没有关系。
二、通信协议
一帧数据的构成:起始位+ 数据位 + 校验位 + 停止位
起始位:1位,逻辑’0’
数据位:5~8位,可以在MCU中设置
校验位:0~1位, 无校验/奇校验/偶校验
奇校验:在数据位中有奇数个逻辑‘1’时,该位为0;否则为1
偶校验:在数据位中有偶数个逻辑‘1’时,该位为0;否则为1
停止位:0.5~2位,(传输每个都会占用固定时长),逻辑‘1’
数据传输顺序:先传送数据的低位
通信速度(波特率baud):在单片机应用,常用通信速度有2400、4800、9600、19200、115200 bit/s
1、Uart串口通信发射代码如下:

本文介绍了如何使用GPIO在没有内置UART功能的芯片上模拟串口通信,详细解析了UART协议的帧结构,并提供了发射和接收代码示例,强调了不同波特率下对中断寄存器时间调整的重要性以及数据错误处理策略。

3432

被折叠的 条评论
为什么被折叠?



