嵌入式linux,串口初始化时,无法设置串口属性解决思路
嵌入式linux,串口初始化时,无法设置串口属性
各位好,请教大家一个问题,
在arm板子上写一个串口通讯的代码
在初始化串口的时候,一旦进行设置,就会死在设置函数中
比如这么做:
这样运行的话,就会死在tcsetattr函数里面不出来
这个到底是什么原因呢?
请大家指教,谢谢
------解决方案--------------------
open时,增加|O_NDELAY 属性
tcsetattr前边增加:
各位好,请教大家一个问题,
在arm板子上写一个串口通讯的代码
在初始化串口的时候,一旦进行设置,就会死在设置函数中
比如这么做:
- C/C++ code
int fd; struct termios options; fd = open("/dev/ttyAMA0", O_RDWR | O_NOCTTY); tcgetattr(fd, &options); tcsetattr(fd,TCSANOW,&options);
这样运行的话,就会死在tcsetattr函数里面不出来
这个到底是什么原因呢?
请大家指教,谢谢
------解决方案--------------------
open时,增加|O_NDELAY 属性
tcsetattr前边增加:
- C/C++ code
options.c_cflag |= (CLOCAL | CREAD); tcflush( fd , FLUSHMETHOD);
------解决方案--------------------
或者用tcflush(fd,TCIOFLUSH);