最近在调SRM32的串口通讯,有点不明白的地方
看书上说串口通讯的一帧一般是1个起始位,8个数据位,一个或两个停止位
这样的话,那么一帧数据是不是应该是1+8+1(或2)=10(或11位)
但是如果加上奇偶校验位的话,这个奇偶校验位是插在数据位和停止位的中间,
还是数据位的最高位?
我配置了USART的USART_WordLength的长度是8位。。
在发送0x80时,用偶校验,串口收到的数据是00(HEX显示)
而如果把USART_WordLength的长度是9位。。
则串口接收的数据就是80。。。
这个好像是把奇偶校验位加在了数据位的最高位。。
这里就想问了,这个USART_WordLength的长度是指的什么长度?
如果要用奇偶校验的话,是不是一定要配置成9位?
还有就是一个停止位和两个停止位有啥区别?
我发现在配置成两个停止位后,串口精灵配置成一个停止位,收到的数据是正常的。
相反,如果程序配置成一个停止位,串口精灵配置成两个停止位,接收的数据也是正常的。。
这个到底有啥区别? |