980578873 发表于 2023-6-8 20:20:27

单片机串口奇偶校验位怎么使用

给位大佬,小弟现在手头上有两块单片机板A和B,想使用A板发送一个数据比如0xFF给B板,请教一下,通过奇偶校验位怎么确定B板有没有收到A板发送过来的数据0xFF,奇偶校验位的使用方法和逻辑是什么,谢谢!

kksk 发表于 2023-6-8 21:51:36

奇/偶校验是用于检测数据传输是否出错的一种方法。对于奇校验而言,它总是保证发送的数据中1的个数为奇数。例如发送0xFF,转换为二级制可知有8(偶数)个1,因此校验位会变为1以使整个数据的1的个数为9(奇数)。而偶校验则保证1的个数为偶数,此例中校验位将是0。如果接收方发现数据奇偶不正确,则认为传输出错,应该丢弃这一份数据。



梁工 发表于 2023-6-8 22:38:24

奇偶校验位是对一个字节里的1的个数进行校验,接收方收到数据按相同的规则校验,就可以知道接收的数据正误,是最初级的校验,但对于一些错误不能检测,比如接收到0x01和0x02奇偶校验结果一样,不能区别。
至于A发给B,A怎么知道B收到了?得用应答机制,B要告诉A,这样就需要协议了。
所以,有通信的,协议先行,先定好协议。
校验推荐最好使用CRC16校验。
页: [1]
查看完整版本: 单片机串口奇偶校验位怎么使用