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

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;