linux 串口0x03,0x13的问题【转】

简介: linux 串口0x03,0x13的问题 本人最近在调linux串口的时候,发现其他数据接收正常,但是0x13怎么也接收不到,后面发现了这篇文章,两天的bug终于解决了,原来是linux底层uart配置问题,现分享给大家 版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127  原创作者:南京邮电大学  通信与信息系统专业 研二 魏清 环境:mini2440,fl6410,atmel9g45都会出现这样的问题 问题描述:使用RS485串口标准通信,发现大多数情况下数据接收没问题,但是有时却有问题。

 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);

 

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
1月前
|
Linux
Linux内核中USB设备驱动实现
Linux内核中USB设备驱动实现
24 0
|
存储 缓存 编解码
Linux 设备驱动
本文整理了 Linux 内核中设备驱动的相关知识
|
Linux
Linux串口驱动程序(3)-打开设备
Linux串口驱动程序(3)-打开设备先来分析一下串口打开的过程: 1、用户调用open函数打开串口设备文件;2、在内核中通过tty子系统,把open操作层层传递到串口驱动程序中;3、在串口驱动程序中的xx_open最终实现这个操作。
1071 0