当前位置: 代码迷 >> 单片机 >> 串口通信设置了奇,偶校验,还要写函数来实现吗?该如何处理
  详细解决方案

串口通信设置了奇,偶校验,还要写函数来实现吗?该如何处理

热度:223   发布时间:2016-04-28 16:31:10.0
串口通信设置了奇,偶校验,还要写函数来实现吗?
串口通信设置了奇,偶校验,还要写函数来实现吗?

 
例如:options.c_cflag |= PARENB; /* Enable parity */ 

options.c_cflag &= ~PARODD; /* 为偶效验*/ 

options.c_iflag |= INPCK; 

这样设置为奇校验,还需要写函数实现奇校验吗?
要写的话,该怎么写?

------解决方案--------------------
串行通信的奇偶校验有硬件(串行收发器)自动完成,不需要软件进行参与,若有校验错误,也会置位相应寄存器的相应位。
------解决方案--------------------
单片机方不用,但在PC接受方需要,不然,谁知道你有没有奇偶校验
------解决方案--------------------
我已经说的很清楚了,这部分功能是串口收发控制器完成的,无论是单片机还是pc,奇偶校验的实现只需要设置串行参数就可以了,单片机中是寄存器设置,而pc上,比如超级终端也有可以设置的地方,设置好了就ok了。软件不需要任何操作。

只不过奇偶校验有其局限性,不能保证数据百分之百正确,如果在高可靠性要求的情况下,可以采用其他校验方式,如校验和,crc校验等。
  相关解决方案