ESP32 esp-idf Serial Over Bluetooth サンプルプログラム #3 です。
前回は、プログラムを一応作って、Windows10 にそれぞれ、ESP32 の UART0 のターミナル、Bluetooth の SPP Serial のターミナル、
UART2 の USB TTL-Serial のターミナルの3個を使って、SPP Serial -> UART2 USB TTL-Seial、
SPP Serial <- UART2 USB TTL-Seial へのテキスト文字の転送迄できました。
今回は、実際の運用を想定して、Window10 で、C,C++ でSerial 通信が出来るプログラムを
作って、そのプログラムで、Bluetooth COMポートへアクセスして、多くのデータの送信、受信が
RS232Cに繋がったデバイス (これも、Window10 で、C,C++ でSerial 通信が出来るプログラム) と
問題なく出来る事を確認できれば、完了ぞね。と行きたい所ですが、
TeraTerm に、ファイルの転送機能があったので、SPP Serial の TeraTerm から、テキストファイルを開いて転送してみました。
どうやら、テキストファイルの先頭2行目以降が、送られない事が判りました。
細かい解説は、後で書くとして取り敢えず、バグ修正をしたコードを記載します。
example_spp_acceptor_demo.c
注) 現在、テキストファイルの転送ができるのは、 Bluetoooth Serial -> UART2 TTL-Serial
だけです。
逆の Bluetoooth Serial <- UART2 TTL-Serial の部分は、まだ組み込んでいません。
プログラムを追えば、簡単に追加できるので、ご自由にトライしてみとうせ。
一応、当初の目的の、 ESP32 esp-idf でSerial Over Bluetooth -> RS232C シリアル通信
コンバータが作れるのが判ったので、これでお終いにします。
その後の検証で判った事ですが、
UART の部分は、uart_echo を使った方が、uart_event を使うよりも簡単で、確実です。
uart_event は、UART2 TTL-Serial の方から、TeraTerm でファイル転送を試すと、"ring buffer full"、"hw fifo overflow" が生じてなんともなりません。
以上、オンちゃんからの後書きでした。
その後、ESP32 に RS232-TTLコンバータモジュール と、USB to RS232 アダプタ を
繋げて、テストしてみました。
RS232-TTLコンバータモジュール は、 RX,TX のピンを間違えなければ、大丈夫でした。
実際に使った物は、こちら。
RS232-TTLコンバータモジュール
USB to RS232 アダプタ