踩的坑,记录提醒!
错误的认知:
一直认为UART_HandleTypeDef结构体中WordLength配置为数据长度,不包括StopBits停止位,Parity奇偶校验位
正确的认知:
在启用(PCE=1)奇偶校验时,实际的数据位(有效数据)会减少一位,因为一位被用于校验。但请注意,此时传输的“字长”(即数据寄存器的长度)是包括校验位的!!!!
参考手册:
根据STM32参考手册(以F1/F4系列为例):
- 当奇偶校验使能(PCE=1)时,数据字长(M位)的配置会发生变化:
M=0: 7位数据 + 1位校验(实际传输8位)
M=1: 8位数据 + 1位校验(实际传输9位)
- 当奇偶校验禁用(PCE=0)时:
M=0: 8位数据
M=1: 9位数据