[問題] UART READ的問題

看板LinuxDev作者 (colin)時間11年前 (2013/10/29 15:14), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
我是一位剛學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
O_RDWR | O_NOCTTY | O_NDELAY 看看
10/29 19:02, 1F
謝謝,我的問題解決了 ※ 編輯: cld123 來自: 59.120.103.214 (11/01 16:39)
文章代碼(AID): #1IRs1f0x (LinuxDev)
文章代碼(AID): #1IRs1f0x (LinuxDev)