- 12行目
- #define SERIAL_PORT "/dev/ttyAM1"
- 21行目
- fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY);
- シリアルインターフェースを"fd"の名前で使えるようにする.
- 28-32行目
- struct termios oldtio, newtio
- 非同期通信ポートを制御するための汎用ターミナルインタフェース(ここではシリアルポート)の設定を司る変数.詳しくは後ほど説明.
- tcgetattr(fd, &oldtio);
- シリアルインターフェース"fd"から,現在の設定を読み込みoldtioに保存
- newtio = oldtio
- 現在の設定をnewtioにコピー.以後,newtioの設定を変え,tcsetattr(fd,&newtio)などでシリアルインターフェース"fd"の設定変更を行う.最後にtcsetattr(fd, TCSANOW, &oldtio)にてシリアルインターフェース"fd"を初期の設定に戻す.大まかな流れは後ほど説明.
- 38-39行目
- cfsetispeed(&newtio, B115200);
- cfsetospeed(&newtio, B115200);
- 42行目
- cfsetspeed(&newtio, B115200);
- 36-38行目と同じことをしている.こちらは入出力を一度に設定している.
- 45-46行目
- tcflush(fd, TCIFLUSH);
- シリアルインターフェースの送受信データをクリア
tcsetattrの実行のために必要.
- tcsetattr(fd, TCSANOW, &newtio);
- newtioを用いてシリアルインターフェース"fd"を設定.
- 51行目
- write(fd, buf , sizeof(buf));
- シリアルインターフェース"fd"にsize(buf)分のデータbufを送信
- 54-55行目
- tcsetattr(fd, TCSANOW, &oldtio);
- シリアルインターフェース"fd"を初期の設定(oldtio)に戻す
- close(fd);
- シリアルインターフェースと名前"fd"の繋がりを開放.
Last-modified: 2023-03-29 (水) 10:47:55