#teratermでループバックテスト
m5stackを使ってUARTテストをします。
m5stack - USB - PC(teraterm)
とつないでやり取りしてみました。
m5stackについて調べた自分の記事のテスト編になります。
m5stackで遊ぼう
https://qiita.com/zasshyu6/items/35a1048a9781bdcfebb7
##開発環境
- windows 10 Home 64bit
- Visual Studio Code 1.36.1
- PlatformIO
- 使用言語はarduino
##m5stackのUARTについて
ESP32のDatasheetとm5stackの回路図とにらめっこしながら調べてみたら以下のことが分かった。
- ESP32には
UART0,1,2
と3チャンネル用意されている。-
UART0
はGPIO1,3
-
CP2104
をつかってUSB-UART変換をしている。 - m5-Busで外部にも出ているが、USBだけで使うのが無難かな。
-
-
UART1
はGPIO9,10
- このPINは
GD25Q32C
っていうシリアルフラッシュにつながっていてm5-Busに出ていないので使用不可。
- このPINは
-
UART2
はGPIO16,17
- m5-Busに出てるピンで唯一何もつながっていないチャンネル。
-
PlatformIOではUART0,1,2
はそれぞれserial
,serial1
,serial2
と設定されている。
serial
はHardwareSerial.cpp
でそれぞれ定義されていたが、serial1
は接続pinの関係上使えない様子です。
以下の記事も参考にさせていただきました。ありがとうございます。
m5stackのserial1は無い
https://boiledorange73.hatenablog.com/entry/2018/11/08/181752
#m5stackにUSBをつないで通信してみよう
以上を調べたので実際にくんでみました。
main.cppだけgit hubに上げました。
https://github.com/zasshyu66/m5stack_Study/tree/master/USBserialloopbacktest
シリアルの設定は以下。(速度以外デフォルト)
serial(UART0)
Data bit :8 bit
No Parity
1 stop bit
テストはteratermでPCとUARTやり取りをしました。
動作は、PCで入力された文字をLCDに表示とPCにそのまま返しています。
ButtonA,B,C
はそれぞれが押されたらPC側へボタンが押されたという表示をする。
ボタンのほうはチャタリングとか押しっぱなし判定は入れてないので押してる間はPCに表示を送り続けます。
本当は動画とか入れればいいんだろうけど、動画取るのめんどくさかったのでまたの機会に・・・
##次にしてみること
これにてPCとのやり取りはできたので次の実験へ移ります。
タイマ割込み使ってストップウォッチを作ってみよう
https://qiita.com/zasshyu6/items/c0bd9bb592192b3c80e7