在Linux平台和奇偶校验位的C语言中进行UART编程

时间:2017-06-20 08:55:12

标签: uart parity

我对UART编程很陌生并试图理解奇偶校验位的概念,但这对我来说还不是很清楚。

据我所知,到目前为止:

假设我有8位从UART deviceA传输到UART deviceB。每次我想向deviceB发送一个字节,然后发送一个起始位,然后是8位,然后是奇偶校验位,然后是停止位。好的,这很清楚。现在,当deviceA设置为使用奇校验时,如果字节中的1为奇数,则奇偶校验位设置为0。如果deviceA设置为偶校验,则相反。好的,我也明白。

现在,当deviceB收到帧时,它检查发送的字节,奇偶校验位与字节中的1的数字是否一致,如果没有,则存在奇偶校验错误。但是这个设备B,也有一个奇偶校验模式。

所以我的问题是:

如果将deviceA和deviceB设置为相同的奇偶校验模式(偶数或奇数),以使此控制按预期工作或我错了吗?

感谢你帮助澄清这一点。

1 个答案:

答案 0 :(得分:-1)

你已经非常清楚地理解了平价的概念。这是一种消除在传输比特序列期间可能发生的错误的方法。

因此,两个设备都应该知道正在使用哪个奇偶校验,因此1的数量应该在发送和接收时保持相同。如果为不同的机器定义不同的奇偶校验,那么两者都将以不同的方式理解位含义 Parity Description

使用此表,您可以了解奇偶校验位如何随奇数和偶数奇偶校验变化相同的数字。 希望这有助于:)