2015/12/28

[esp8266]UARTを115200bpsにする

RTOS版を保留して、まずはnon-OS版でビルドすることにした。
以前、ATコマンドのサンプルはビルドして動かしたことがあるので、もう少しシンプルなものにしたい。

選んだのは、smart_config。
何をするのかはわからないけど、最初にos_printf()とあるから、文字列をシリアル出力するところが見えればいいだろう。

ビルドして、焼くが、なんかシリアル出力がゴミ。
そういえば、あまり普通じゃない速度がデフォルトだったよな、と思って検索すると、デフォルトは74880bpsなので、uart_init()で変更すればよいとのこと。

ふむふむとuart_init()を呼び出したのだが、リンクエラー。
UartBautRate(Baud、じゃないんだ)というenum定義っぽいので、includeを検索するが出てこない。
なんだこれは?

 

調べた結果、uart_init()はexamples/driver_libにいることがわかった。
気付かんわ。。。
中身を自分のプロジェクトにコピーして、Makefileを書き換えるのだ。
そしたら、ちゃんと115200bpsで出力された。

なお、デフォルトではUART0に出力するようになっていて、WROOM-02なのかスイッチサイエンスさんのボードがそうなのかはわからんが、ピンのRX/TXで出ているのはUART0なので、気にせず使えるようになっている。

 

たぶん、コンパイルオプションでwarningがあまり出ないようになっているので、-Wallくらいは追加したいな。
また、使っていない関数をリンクから外したいのだけど、大丈夫かな?

 

それよりも今回の大きな発見は、cygwinでビルドしたものを焼いてもうまく動かなかった、ということだった。
こっちを使った方がよいのかな? 次回試そう。
http://gnutoolchains.com/esp8266/

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。