日期:2014-05-16  浏览次数:20999 次

嵌入式linux,串口初始化时,无法设置串口属性
各位好,请教大家一个问题,
在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);