UART简介
Universal Asynchronous Receiver Transmitter,即通用异步收发器,是一种通用的串行、异步通信总线。该总线有两条数据线,可以实现全双工的发送和接受。嵌入式系统中常用于主机与辅助设备之间的通信。
通信基础
- 并行和串行
- 并行通信:字符编码的各位(比特)同时传输。
- 串行通信:将组成字符的各位串行地发往线路。
- 单工和双工
- 单工:区分发送器和接收器,数据只能从发送器到接收器,单向的。
- 双工:
- 半双工:一个设备不能同时发送和接收数据;(一根数据线)
- 全双工:一个设备在发送数据的同时也能接收数据。(两根数据线)
- 波特率
~用于描述UART通信时的通信速度,单位位bps(bit per secont),即每秒传送的bit的数量。
UART帧格式
- 空闲时,数据线为高电平;
- 先发低位,再发高位;
-通过波特率,掐时间。区分0 1和0 0 1 1;为了防止累计误差,不允许连续通信,一次发送一个字节。 由于接收方和发送发时钟不同,所以称之为“异步通信”。
UART硬件连接
编程步骤
- 设置通信参数 - 设置波特率、数据位、停止位等
- 设置通信管脚 - 分配连接设备的管脚
- 安装驱动程序 - 为 UART 驱动程序分配 ESP32 资源
- 运行 UART 通信 - 发送/接收数据
- 使用中断 - 触发特定通信事件的中断
- 删除驱动程序 - 如无需 UART 通信,则释放已分配的资源
注:步骤 1 到 3 为配置阶段,步骤 4 为 UART 运行阶段,步骤 5 和 6 为可选步骤。