読者です 読者をやめる 読者になる 読者になる

szmlb.net

tips for robotics

FTDI USBドライバを利用したLinuxでのシリアル通信メモ

Linuxでシリアル通信のプログラムを作成する際のメモ.
PythonのpySerialライブラリや, QtのQtSerialPortクラス, ROSではrosserialがあるので需要は少ないかもしれないが, C/C++FTDIを利用してシリアル通信する必要があったのでメモを残しておく.

C/C++でのシリアル通信プログラミング

最近のLinuxディストリビューションでは, シリアル通信のためのドライバFTDIがデフォルトで組み込まれており利用が可能である.
FTDIを利用したC/C++用の解説サイトとして下記のサイトが非常に分かりやすい.
xanthium.in

また, サンプルコードがGitHubで公開されている.
github.com

ボーレートのカスタム設定

通常のFTDI用APIでは, ボーレートの設定に不都合があるらしい.
例えば307.2kbpsのボーレートに設定しようとするとコンパイルの段階でエラーとなる.
その点に関して下記のサイトで議論されており, また解決策も提示されている.
stackoverflow.com

対策用のソースコードココ.

サンプルコード

以上のコードを参考にしてゴテゴテくっつけただけのプログラムは以下の通りです.
ポートを開いて書き込んで読むだけです.
github.com

参考