STM32勉強日記(2021/6/27)
STM32マイコンのプログラムを勉強していく日記的なものを、雑多に書いていこうと思い立ち、書くことにしました。
組み込みの勉強関連で、今までやったこと。
C言語勉強:どっとインストール、 PICの動作(2年前くらい?) もう殆ど忘れて る。
STM32演習:GPIO~UART通信まで youtube見ながら実装まで確認
現在は、DFplayerをnucleof401REで操作出来るようにする事を目標に、UART通信のやり方を学習中です。
2021/6/27
先週までに、DFPlayerの回路をユニバーサル基板で実装し、スイッチでSDカードminiのmp3ファイルを再生できるようにした。
そして、その基板にmbedを接続することで、操作が出来るようにした。
なので、とりあえずプログラミング環境は整った。
今日やりたかったこと。
Nucleo F401のピンや設定などをCube MXで出力し、DFplayerの動作をデータシートを確認しつつ、UART通信でDFplayerにコマンドを送信しようとした。
結果、そこまでは出来なかった。 mbedのプログラムで実装はできたっぽい。
UART通信の学習のところでPCと接続して、キーボードの文字を出力できるようにはした。 
参考:
DFplayerの方に出力する場合、同じ構成でいいのかと思いつつ、
とりあえず、コマンドを調べて、出力させようと思った。
ただUART通信のところ覚えてないで・・・
ということで再度見直しながら、どうやって実装するか考える。
とりあえずやりたいのは、シンプルにmbedが移動したら001が再生するプログラムを作りたい。
しかし、演習の課題の奴だとキーボードの入力を出力することになってしまい、
0x0Fなどのデータは遅れない。
そこで、受信部分は消して、送信だけするプログラムを作成しようと思った。
既にarduinoであれば、ライブラリを作ってる人もいるし、わりとやってる人がいるが、
STM32のマイコンでやってる人は意外と見つからない。
ここら辺のブログを見つつ、試行錯誤したが、出来ない・・・・
HAL(&,,);だとcharのやつ送ってることになるんだけど。
データとして送るのってどうやるんだ?? 
意味を調べてみる。
第一引数は・・・
さて、なんとなくわかったけど。 UARTで外部と通信するときって、charでいいのか???
ようわからんし、最低限基板が動いて、mbedで動作できるかだけでも確認したい。
mbedの方だったら何回か作ったことあって、通信も楽だし、一旦そっちで確認するかなと思い、STM32のプログラムではなく、mbedのライブラリを使用して、UART通信をしてみることにした。
調べるとLPC1114を使ってやってる人がいたので、これを拝借した。
自分が使用しているのはnucleo f401だが、殆どピン設定を変えたりすればそのまま使えるはず。
ということで、ピン設定を変えて実行した。
いや、動かねぇ。
何故だ。
1kΩ抵抗抵抗を通信ラインに入れたけど、あれが悪さしてるのか?いやそんな事にはならない気がするけど。ちょっとやってみよう。 ←バカ
1kΩの抵抗を飛ばして、再度実行。
いや動かねえ。
LPC1114から持ってきた時に、他になんかやらないといけないことがあるのか?
調べたがうーん、分からん。
ということで、少し休憩にアイスを食べた。 おいしい。
再度挑戦する。 ということでプログラムを色々といじってみる。
001を再生するようになってるから、ファイルが設定できてないとか? nextにして、次の音楽を再生するようにしてみよう。
先に再生したか判別する所だけでも、見てみるか。 Highの時は、LEDが点灯して、Lowの時は、点滅と。 あれ、全然その通りになってないぞ。
やっちまったGNDをmbedとDFplayer側の基板で繋げるのを完全に忘れていた。
GNDを指す所を追加して、再度実行。
とりあえず、音の再生と停止の判断部分はできてるっぽい。
ただ、UART通信はできてないな。
プログラムをシンプルにしたい。
青いボタンを押したら、nextにして、音再生中は点滅、停止中は点灯するだけのプログラムにしよう。
UART通信できねえええええ。
なんでなんだ・・・・
もう一度ピンについて調べる。
DFplayerのRXとmbedのTXをつなげる。
DFplayerのTXとmbedのRXをつなげる。
問題なし。
設定、 PA_2とPA3になってるか。 あってるな。
そういえば、mbedで使えないピンが有ったなと思い、PA_2とPA_3大丈夫か確認してみるか。
そこで発覚したのが、PA_2とPA_3はそのままだと使えないという記事。
これは違うやつのボードだけど。嫌な予感がするnucleo f401reの方のデータシートを確認しよう。
・・・・
nucleo f401REでも同じく、そのままだと使えません・・・・
やらかしたぁ
ピンのとこに書いとけヤァわれぇと思い、ピン配置の部分を確認しに行く。
青色になっている・・・だと・・・?
これってそういう意味か・・・
ということで、ピンをPA_10とPA_9に変更してやる。
・・・・ できたぁああああ。
ということで、朝の6時から16時までやって、nucleo f401からDFplayerを動かすのは出来ました。
ただ疲れたので今日はここまでにして、来週STM32のプログラムを進めようということに。
#ものづくり
#日記
#プログラミング