232电平 +—15v
uart电平 0/5v
协议层
一个数据包的组成
起始位: 一个逻辑0
结束位:0.5个,1个,1.5个,2个逻辑1
有效数据:5~8位长度
校验位(可选):奇校验even,偶校验odd
stm32上的串口
TX:发送
RX:接收
SCLK:时钟仅同步通信时使用
nRTS:请求发送(低电平有效)
nCTS:允许发送(低电平有效)
引脚
USART1挂载在APB2上,其他挂载在APB1上
数据寄存器
USART_DR:9个数据,发送和接收寄存器使用同一个地址
USART_CR1控制寄存器
发送:UE=1 TE=1 将数据送到 TDR
波特率
USART_BRR波特率寄存器
$$
Tx/Rx Baudrate= \frac{f_}{(16*USARTDIV)}
$$
$f_$串口时钟,APB1或APB2
例子
程序代码
1.初始化GPIO