Linux RS232 transmitter programming

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

Linux RS232 transmitter programming

文章relax » 週六 3月 18, 2006 1:19 am

不好意思~
請大家幫幫忙
這個程式是RS232傳送端的傳輸程式
我用NULL MODEM的線將兩台電腦互連
所以這邊的這個程式應該是要可以傳送字元到另一端的螢幕上的
可是~他卻只會顯示在本地端的螢幕上
搞不懂哪裡出錯了
請幫幫忙
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdio.h>
#define BAUDRATE B38400
#define MODEMDEVICE "/dev/ttyS0"
#define STOP '@'
int main()
{
int fd,c=0,res;
struct temrios oldtio,newtio;
char ch;
static char s1[20];
printf("Start...\n");
fd=open(MODEMDEVICE,O_RDWR|O_NOCTTY|O_NONBLOCK);
if(fd<0){
perror(MODEMDEVICE);
exit(-1);
}
printf("Open...\n");
tcgetattr(fd,&oldtio);
bzero(&newtio,sizeof(newtio));
newtio.c_cflag=BAUDRATE|CRTSCTS|CS8|CLOCAL|CREAD;
newtio.c_iflag=IGNPAR;
newtio.c_oflag=0;
newtio.c_flag=ICANON;
newtio.c_cc[VMIN]=1;
newtio.c_cc[VTIME]=0;
tcflush(fd,TCIFLUSH);
tcsetattr(fd,TCSANOW,&newtio);
printf("Writing..\n");

while(1){
while((ch=getchar())!=STOP){
s1[0]=ch;
res=write(fd,s1,1);
}
s1[0]=ch;
s1[1]='\n';
res=write(fd,s1,2);
break;
}
printf("Close...\n");
close(fd);
tcsetattr(fd,TCSANOW,&oldtio);
return 0;
}

PS~This program has some problem.Please help me,thank you.
It can not show char on another computer's screen.
參考書籍:嵌入式Linux程式設計
relax
可愛的小學生
可愛的小學生
 
文章: 8
註冊時間: 週三 11月 23, 2005 8:51 am

回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:Google [Bot] 和 1 位訪客