<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://blog.lihan.cyou/index.php/feed/rss/tag/UART/">
<title>ikn0w1T&#039;s blog - UART</title>
<link>https://blog.lihan.cyou/index.php/tag/UART/</link>
<description></description>
<items>
<rdf:Seq>
<rdf:li resource="https://blog.lihan.cyou/index.php/archives/198/"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://blog.lihan.cyou/index.php/archives/198/">
<title>UART串口通信简记</title>
<link>https://blog.lihan.cyou/index.php/archives/198/</link>
<dc:date>2025-10-29T10:36:00+08:00</dc:date>
<description>流程空闲时线路保持 高电平（逻辑 1）起始位,发送方先故意拉低 1 位时间（逻辑 0），这个低电平就是 “哨子”：“注意啦，我要开始发一个字节！”接收方检测到从高→低的跳变，立刻开始按约定波特率采样后面的位。数据位+校验位停止位，校验位之后再发 1~2 位高电平（逻辑 1），表示“本帧结束，线路恢复空闲”，如果接收方在预期位置没采样到高电平，就会报“帧错误（frame error）”。波特率常用值：4800 / 9600 / 115200例如波特率9600表示每秒传 9600 个 bit注意：通信双方必须设为一致校验位校验方式规则举例（发 0x35 = 0b0011\_0101）偶校验(even)整个帧（数据+校验）里 1 的个数 = 偶数原数据有 4 个 1 → 校验位 = 0奇校验(odd)1 的个数 = 奇数同上 → 校验位 = 10 校验校验位固定为 0不用算，直接写 01 校验校验位固定为 1不用算，直接写 1无校验没有第 9 位，速度快，省 1 位时间常见于现代高速 UART奇偶校验是为了使得数据+校验里的1的个数满足奇或偶，0 校验 = “第 9 位必须是 0”——简单拉低检测；1 校验 = “第 9 位必须是 1”——简单拉高检测；无校验 = “根本没有第 9 位”——速度最快，错误交给上层。LSB&MSBLSB = Least Significant Bit最低有效位 → 数值最小那一位 → 先发/先存MSB = Most Significant Bit最高有效位 → 数值最大那一位 → 后发/后存用 1 字节 0xB5 举例二进制：1011 0101位权1286432168421值10110101别名MSB      LSBUART 规定：先传 LSB，再传 MSB所以 0xB5 在 TXD 线上出现的顺序是：1  0  1  0  1  1  0  1
↑  ↑  ↑  ↑  ↑  ↑  ↑  ↑
LSB              MSB
（时间从左→右）内存/文件怎么存？小端（Little-Endian）：低地址存 LSB（x86、ARM Cortex-M）大端（Big-Endian）：低地址存 MSB（网络字节序、部分 MCU）例：16 位数值 0x1234分组计算0001 0010 0011 0100，8位一字节存储。地址小端大端0x000x34 (LSB)0x12 (MSB)0x010x12 (MSB)0x34 (LSB)LSB：数值最小，串口先发，小端先存。MSB：数值最大，串口后发，大端先存。</description>
</item>
</rdf:RDF>