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);
时间: 2024-10-05 08:50:52