Linuxでシリアル通信(RS232C)
公開日:
:
最終更新日:2011/05/30
Linux
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
パソコンプログラム(シリアル通信)を読んでみる。
Linuxでシリアル通信(RS232C) 同期・カノニカルデータ受信
シリアル入力としては、同期・非同期とともに、カノニカル・非カノニカルの選択をすることができます。
同期:入力がうまくいくまでread文がブロックされる(デフォルト)。
非同期:read文は即座に終了。読み込みが完了したときにプログラムにシグナルが送られる。
カノニカル:入力は行単位で行われる(デフォルト)。
非カノニカル:read毎に決まった文字数を扱う。決まった文字数のキャラクタを受信するときなどに使用。
if((fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY ))==-1){
/* O_RDWR:読み書き両用 O_NOCTTY:tty制御をしない */
perror(MODEMDEVICE);
exit(-1);
}
while (STOP==FALSE) { /* 終了条件が満たされるまでループ */
res = read(fd,buf,255);
buf[--res]=0; /* 文字列の終端をセットする */
printf(":%s:%d\n", buf, res);
if (buf[0]=='z') STOP=TRUE;
}
close(fd); /* COM1のシリアルポートを閉じる */
Linuxでシリアル通信(RS232C) 同期・非カノニカルデータ受信
if((fd=open(MODEMDEVICE, O_RDWR | O_NOCTTY))== -1){
/* O_RDWR:読み書き両用 O_NOCTTY:tty制御をしない */
perror(MODEMDEVICE);
exit(-1);
}
while(STOP==FALSE){
res=read(fd, buf, 255);
for(i=0; i<res; i++){
if(buf[i]=='z'){
STOP=TRUE;
break;
}
printf("%c", buf[i]);
if((i%4)==0){
printf("\n");
}
}
}
close(fd); /* COM1のシリアルポートを閉じる */
iPhoneの充電にはこちらをどうぞ
SANYO USB出力付きリチウムイオンバッテリー (専用高容量リチウムイオン電池使用) KBC-L2AS
- 出版社/メーカー: 三洋電機
- 発売日: 2009/11/14
- メディア: Personal Computers
- 購入: 58人 クリック: 1,304回
- この商品を含むブログ (83件) を見る
SANYO NEW eneloop スティックブースター USB出力専用ブースターセット(単3形2個セット) KBC-D1AS
- 出版社/メーカー: 三洋電機
- 発売日: 2010/01/21
- メディア: Personal Computers
- 購入: 41人 クリック: 1,328回
- この商品を含むブログ (126件) を見る
関連記事
- PREV
- beegoをインストールしてみる
- NEXT
- /dev/cu.* と /dev/tty.*