[问题] UART READ的问题

楼主: cld123 (colin)   2013-10-29 15:14:44
我是一位刚学EMBEDDED SYSTEM的新手
想要请教一下
写一个uart的程式如下
int main()
{
int fd, c=0, res;
struct termios oldtio, newtio;
char buf[256];
printf("Start...\n");
fd = open(MODEMDEVICE, O_RDWR|O_NOCTTY);
if (fd < 0) {
perror(MODEMDEVICE);
exit(1);
}
printf("Open...\n");
tcgetattr(fd, &oldtio);
bzero(&newtio, sizeof(newtio));
newtio.c_cflag = BAUDRATE|CS8|CLOCAL|CREAD;
newtio.c_iflag = IGNPAR;
newtio.c_oflag = 0;
newtio.c_lflag = ICANON;
tcflush(fd, TCIFLUSH);
tcsetattr(fd, TCSANOW, &newtio);
printf("Reading...\n");
while(1) {
res = read(fd, buf, 255);
buf[res]=0;
printf("res=%d buf=%s\n", res, buf);
if (buf[0] == '@') break;
}
printf("Close...\n");
close(fd);
tcsetattr(fd, TCSANOW, &oldtio);
return 0;
}
程式卡在res=read(fd,buf,255);后面的程式就没有继续执行下去
所以就看不到printf("res=%d buf=%s\n",res,buf);这一行的讯息
baudrate的设定也是正确
但就是出现这个问题!!卡了好几天无法解决
希望有高手可以帮忙解决
谢谢
作者: Bode123 (中肯宝宝)   0000-00-00 00:00:00
O_RDWR | O_NOCTTY | O_NDELAY 看看

Links booklink

Contact Us: admin [ a t ] ucptt.com