日期:2014-05-16  浏览次数:20716 次

linux下串口开发有没有Mark、space校验,对应的数值是几?
rt,要在多机通讯中用

------解决方案--------------------
1. even 每个字节传送整个过程中bit为1的个数是偶数个(校验位调整个数)
2. odd 每个字节穿送整个过程中bit为1的个数是奇数个(校验位调整个数)
3. noparity没有校验位
4. space 校验位总为0
5. mark 校验位总为1;

参考了一下串口的硬件驱动程序:
Stick even parity parity enable parity
- - 0 无校验
0 0 1 奇校验
0 1 1 偶校验
1 0 1 Mark
1 1 1 space

得到如下的校验设置方式:
#define CMSPAR 010000000000
本句使能了stick parity的校验可行性
Mark校验
options.c_cflag |= PARENB | CS8 | CMSPAR |PARODD;

Space校验
options.c_cflag |= PARENB | CS8 | CMSPAR;