沼津高専 電子制御工学科 | |||||||
| |||||||
改訂記録 | |||||||
---|---|---|---|---|---|---|---|
版数 | 作成日 | 作成者 | 承認 | 改訂内容 | |||
A01 | 2006.7.28 | 尾崎/吉田/柏木 | 初版 |
プログラム上で制御命令を発信しているはずなのに音声再生モジュールが動作しない |
SDカードのフォーマット方式が限定されている →今回用いている音声再生モジュールではSDカードのフォーマット方式が限定されており(FAT16あるいはFAT32)、違うフォーマット方式では内部ファイルにアクセスできない。 WindowsとLinuxでは改行コードが違う →音声再生モジュールに送信する命令は最後に改行が必要であるが、音声再生モジュールはWindows用に作られたものであるため、改行コードがLinux標準のものと違う。 そのためプログラム上でただ改行コードを送信しても音声再生モジュールは動作しないため、Linux標準の改行コード\nではなく、それにCRを加えたWindows標準の改行コード\r\nを送信するようにした。 通信速度の設定 →プログラムでの設定とモジュールの設定が一致していないと上手く通信ができない。(モジュールではデフォルトの通信速度は9600bps) |
信号がうまく受信できない、通信が安定しない |
通信はできるが、かなりの確率で通信不能状態になる →Linuxのシリアル通信はデフォルトが同期通信になっているが、音声再生モジュールは非同期通信しか行えないため、データのやり取りが正しく行われなかった。 →初期のプログラムではカノニカル入力処理を行っていたため、音声再生モジュールからのデータをうまく受信することができなかった。 ※ちなみに、Windowsではカノニカル処理と非カノニカル処理、同期通信と非同期通信を自動で切り替えているようである。 |
関連文書 |
---|
参考資料:http://www.linux.or.jp/JF/JFdocs/Serial-HOWTO.html |