[問題] rs232接/收問題請教
我想要在程式裡面實作
同時含有寫入與讀取的動作
但是不知道為什麼
如果寫入與讀取分開成兩隻程式,就可以跑
寫在一起反而就會卡住
因為我必須先送出資料給某機器(某機器使用rs232接到linux上)
某機器才會回傳資料給我
不曉得是否我的觀念有錯呢?
另外未來如果換成rs485的話
程式需要再去指定用rs485來傳輸呢?
還是說只要接好線就可以了呢?
謝謝
#define BAUDRATE B38400
#define MODEMDEVICE "/dev/ttyS0"
int main()
{
int fd,c=0,res;
struct termios oldtio, newtio;
char buf[256];
fd=open(MODEMDEVICE, O_RDWR|O_NOCTTY|O_NDELAY);
if(fd<0)
{
perror(MODEMDEVICE);
exit(1);
}
fcntl(fd, F_SETFL, 0);
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("Read\n");
while(1)
{
write(fd,"test",4); //送資料給某機器
sleep(2);
res=read(fd,buf,255); //接收某機器回傳的資料
buf[res]=0;
printf("res=%d buf=%s\n",res,buf);
//if(buf[0]=='/')break;
}
close(fd);
tcsetattr(fd,TCSANOW,&oldtio);
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.71.11.31
→
11/10 13:08, , 1F
11/10 13:08, 1F
→
11/10 13:18, , 2F
11/10 13:18, 2F
→
11/10 14:33, , 3F
11/10 14:33, 3F
推
11/10 14:57, , 4F
11/10 14:57, 4F
→
11/10 14:58, , 5F
11/10 14:58, 5F
推
11/25 02:36, , 6F
11/25 02:36, 6F
→
11/25 02:38, , 7F
11/25 02:38, 7F
→
11/25 02:38, , 8F
11/25 02:38, 8F
→
11/26 20:06, , 9F
11/26 20:06, 9F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章