对于外部设备来说,STM32可支持7位数据位,但是必须不能是无校验,同时需要做一些额外的处理
众所周知,STM32系列单片机控制寄存器只支持8、9位数据位
但是在设置8数据位时,如果选择了硬件奇偶校验控制,校验位会被插到MSB的第8位,这个时候数据也就变成了7位。
8数据位时发送时序图,注意看数据帧的位7
通过上面可知,在设置8数据位奇偶校验情况下,支持外部设备的7数据位奇偶校验。但是通过测试发现,此情况时,发送是没问题的,接收的数据最高位存在问题,需要对接收到的每一字节数据进行最高位置零操作,这样处理过的数据才正确。
注:以上截图参考自《STM32F40x-41x-42x-43x 参考手册(英文版V4的译文)》,接收的时序未作抓取也未深究原因,有兴趣的小伙伴可自己研究。如果有错误,请包容,欢迎指正。