[問題] UART READ的問題
我是一位剛學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的設定也是正確
但就是出現這個問題!!卡了好幾天無法解決
希望有高手可以幫忙解決
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.103.214
推
10/29 19:02, , 1F
10/29 19:02, 1F
謝謝,我的問題解決了
※ 編輯: cld123 來自: 59.120.103.214 (11/01 16:39)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章