LoginSignup
0
0

More than 1 year has passed since last update.

STM32F401CCU6(Black Pill)とSSD1306をArduinoIDE2.0.3上で使ってみた

Posted at

 性能は高いのに最近あまり耳にしないSTM32F401CCU6(Black Pill)ですが、一年ほど前にお安く手に入れたのに使えてなかったです。またSSD1306も購入後眠っていたので、両方活用しようと考えました。しかし、ネット上の情報も少なく、STM32CubeIDEを使うのが主流のよう。まずはArduinoIDEで何とか動かしたいと色々模索してみたら、案外簡単なことだったのでご紹介します。
SSD1306動作.jpg
 まず、ESP32などに押され気味なBlack Pillです。ご存じない方はこちらを参考に。
https://www.mischianti.org/2022/07/02/black-pill-stm32f4-pinout-specs-and-arduino-ide-configuration-4/
プログラム書込みモード(DFU)に入るのにも癖があります。個体差もあるかも知れませんが、私のは比較的簡単に入れます。[NRST]と[BOOT0]を同時押しののち少し様子を見て、[NRST]をほんの僅か早く離すと「STM32 BOOTLOADER」が現れます。この辺りは、デバイスマネージャーを開いておいて見ながら作業すると良いですね。
デバイス.jpg
 さて、上記サイトを参考にArduinoIDEでボードを使えるようにします。私の環境のArduinoIDE2.0.3のスクショでは見にくいので上記サイトの図をお借りしています。
Arduino_F401CC.jpg
 「Adafruite_SSD1306」のLibraryを導入し、その後「File→Examples→Adafruite SSD1306→ssd1306_128x64_i2c」と進みます。いつもの作法通り、Verify、Uploadとすんなりいきますが、書き込み後に表示されません。ウーン、相変わらず私が良く解っていないだけ?
 I2CアドレスはNANOで使ったときに「0x3C」とわかっていたのですが、念のため調べてみることにしました。「File→Examples→Wire→i2c_scannaer」と進み、このスケッチを書き込み動かしてみたところおかしい。i2cのアドレスが見つからないとのメッセージが出てきます。沈思黙考ののちWire.begin()の前に以下のように指定してみました。これで無事動くようになりました。めでたし、めでたし💦。Exampleそのものですし長いので、ソースは載せません。

  Wire.setSDA(PB7);
  Wire.setSCL(PB6);
  Wire.begin();
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0