我是一位剛學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的設定也是正確
但就是出現這個問題!!卡了好幾天無法解決
希望有高手可以幫忙解決
謝謝