12 UART
up的视频讲解按物理连接、波特率、数据帧和外设结构的顺序,看懂一串数据怎样从引脚发送出去。
1 UART 如何连接两个设备
UART 是通用异步收发器。TX 用于发送,RX 用于接收:设备 A 的 TX 接设备 B 的 RX,反方向也按相同方式连接,同时建立共同的地参考。

| 工作方式 | 同一时刻能做什么 |
|---|---|
| 全双工 | 双方同时发送和接收 |
| 半双工 | 双方轮流发送,同一时刻只有一方发送 |
| 单工 | 只沿一个方向传输 |
课程芯片的 USART 外设支持异步通信。这里只使用异步收发功能,因此重点按 UART 的方式学习。
2 没有时钟线,如何约定速度
同步通信通过独立时钟线协调收发;异步通信没有这条共享的时钟线,双方需要预先约定传输速率和帧格式。

波特率与位时间
波特率表示每秒传输多少个码元。在本课 UART 的二电平信号中,一个码元表达一位数据,因此常用的 9600、115200 也对应相应的比特传输速率。
一位持续的时间 = 1 ÷ 波特率

有效数据速率还要扣除起始位、停止位等开销。例如,一个数据字节并不一定只占八个位时间。
电平也必须匹配
接线正确、波特率一致,还不意味着电气连接一定正确。课程主控使用 3.3 V 逻辑信号,应确认串口模块的电平兼容性。USB 与 UART 的物理信号和协议不同,需要 CH340 等桥接芯片进行转换。
3 把一帧数据拆开看

| 部分 | 作用 |
|---|---|
| 起始位 | 以低电平标记一帧开始 |
| 数据位 | 携带要传输的数据 |
| 校验位 | 可选,用于检查部分传输错误 |
| 停止位 | 以高电平标记帧的结束 |
UART 线路空闲时为高电平。接收方检测起始变化后,按照约定的位时间判断后续数据。发送与接收双方的配置必须对应。

奇偶校验统计数据位与校验位中 1 的总数:偶校验使总数为偶数,奇校验使总数为奇数。它能够发现部分错误,但不能发现所有多位错误。
4 USART 外设怎样完成收发

接收通路
RX 上的串行信号经过采样和接收控制,进入接收移位寄存器。一个数据接收完成后,被送到数据寄存器,并通过 RXNE 等状态通知程序读取。

发送通路
程序把数据写入发送数据寄存器,再由移位寄存器逐位发送。TXE 表示发送数据寄存器可以接收下一份数据,它与整帧已经发送完毕不是同一含义。

参数与时钟
控制寄存器配置字长、停止位、校验等参数;波特率发生器根据外设时钟和分频设置产生收发所需的时序。

后面的实验会把这一过程接到电脑上:STM32 发送字节,CH340 完成桥接,串口助手把字节解释并显示出来。