serial-port - 奇偶校验是否包括 RS-232 上的起始位和停止位?

标签 serial-port uart parity

假设我想使用 rs-232 发送 11110000 数据。起始位是1,停止位是0,我将使用偶校验。奇偶校验位在这里如何工作?它是只检查我的数据并变为 0 还是检查整个位并变为 1

最佳答案

起始位和停止位用于成帧,而不是奇偶校验计算的一部分。
仅数据位参与奇偶校验计算。

奇偶校验位是一个附加位,它被设置为一个值,以使总计数(奇偶校验)与奇偶校验设置匹配。
在您的 11110000 示例中,有四位。四是偶数。由于指定偶校验,因此奇偶校验位应为零,以便计数保持为偶数 4。

如果您指定了奇数奇偶校验,则奇偶校验位应为 1,这样 1 的计数将为 5,即奇数。

Start bit is 1 and stop bit is 0

实际上恰恰相反。
起始位是空格或0。停止位是一个标记或1
对于RS-232,空格为正电压,标记为负电压。
因此,RS-232 时序图通常会在 Y 轴上的标记 (1) 上方显示空格 (0),就像示波器一样。

引用:http://www.cmrr.umn.edu/~strupp/serial.html#2_3

关于serial-port - 奇偶校验是否包括 RS-232 上的起始位和停止位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466848/

相关文章:

c++ - 在串行端口上写入时出现错误 112(磁盘已满)是什么意思?

c - Arduino串行通信:本地回声人类角色输入

c - STM32:通过USART接收数据

user-interface - 奇偶校验 GUI 错误(getTransactions TypeError : Failed to fetch)

使用预处理器计算奇偶校验位(通过 ref 调用的奇偶校验功能样式)

c++ - 这段代码如何计算一个数的奇偶性?

c# - 后台串口读取循环

c - 如何将 stdout 重定向到 COM 端口

c - 使用 glib 和 gtk+ 通过 USB 控制 ftdi 设备

c - 从 UART 读取数据时停止程序