2002年11月18日

[obu:02043] Re: シリアルからのデータ通信

はじめまして、落人だんなと申します。
#まだOBSSはもっていないんですが。(^^;

ざっとプログラムを見て気が付いたとこだけ。
ちなみに、以下の指摘は、Debian GNU/Linux[woody kernel2.4.18(i386)]で動
作させた事をベースにしてます。

> printf("Open GPS Device\n");
> if((ch=open("/dev/ttyS0",O_RDWR))<0){
> perror("* Can't open RS-232C-0 port\n");

> return(-1);
> }
> printf("success opened.\n");
> bzero( &t, sizeof(t) );
> t.c_cflag = B4800 | CS8 | CLOCAL | CREAD ;
> t.c_iflag = IGNPAR ;
> t.c_oflag = 0 ;
> t.c_lflag = ICANON ;

まず、termiosの使い方が間違っているような。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/termios.3.html
ボーレートの設定は、
cfsetospeed (&t, B4800);
cfsetispeed (&t, B4800);
こんな感じで使います。(cflagじゃ設定できない)
そして最後に、
tcsetattr(ch,TCSANOW,&t);
する事で、termiosの設定が反映されるっと。
他のパラメータは、実際の環境によりけりなんで、これ以上はなんとも。


投稿者 xml-rpc : 2002年11月18日 19:04
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/8042
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。