linux 串口0x03,0x13的问题

 linux 串口0x03,0x13的问题

本人最近在调linux串口的时候,发现其他数据接收正常,但是0x13怎么也接收不到,后面发现了这篇文章,两天的bug终于解决了,原来是linux底层uart配置问题,现分享给大家

版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 

原创作者:南京邮电大学  通信与信息系统专业 研二 魏清

环境:mini2440,fl6410,atmel9g45都会出现这样的问题

问题描述:使用RS485串口标准通信,发现大多数情况下数据接收没问题,但是有时却有问题。

问题解决:通过串口调试工具向ARM串口发送数据,由ARM接收,发现无法接收0x03,0x13字节。

解决办法:在应用层添加如下代码修改.c_oflag和.c_oflag和.c_iflag

 struct termios options;
 if  ( tcgetattr( fd,&options)  !=  0) {
  perror("SetupSerial 1");
  return(FALSE);
 }
 options.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
 options.c_oflag &= ~OPOST;

 options.c_cflag |= CLOCAL | CREAD;

 options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。