linux - 如何从串口接收到的字符中获取奇偶校验位?

标签 linux serial-port

我正在为通过串行端口连接的设备编写驱动程序。不幸的是,第 9 个数据位指示该字符应该被解释为命令还是数据。

使用内置奇偶校验对我不起作用,因为错误由附加字符 (NUL) 指示。然后我不知道我是否收到了两个数据字节或一个带有奇偶校验错误的数据字节。

有没有办法在其他地方获得这个奇偶校验位?

编辑:显然,这个问题也存在于 Windows 上(参见 http://gilzu.com/?p=6 )。最终重写了串行驱动程序。这也是我在 Linux 上的唯一选择吗?

最佳答案

据我所知,您应该能够按原样使用 PARMRK ,假设 \377\0 模式不太可能出现在您的输入中。否则,是的,您可以修改串行驱动程序以将奇偶校验(或者更确切地说,如果该字节有奇偶校验错误)添加到每个字节。不过,我会选择前者。

关于linux - 如何从串口接收到的字符中获取奇偶校验位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138030/

相关文章:

linux - grep'ing 从以前的 grep 输出的文件

embedded - Microchip PIC 的 Modbus 堆栈

python - PySerial 无法识别或发现串行端口

c - 从串行端口读取时使用 sleep()

c# - 是什么导致 Mono 下的 SerialPort.Write 出现偶发错误?

c++ - QSerialPort 读取错误的数据计数

c++ - 文件描述符上的 IO

linux - 有什么办法可以用 kqueue/kevent 模拟 epoll_wait 吗?

linux - kubectl cluster-info 为什么在控制平面而不是主节点上运行

android - Android 应用程序可以将自身复制到 Root设备上的系统目录吗?