ブルーピル事はじめ


STM32 STM32F103C8T6 ブルーピル

概念の理解:Arduinoとの比較(個人的な解釈)
【IDE環境】
Arduinoの場合→Arduino IDE
STM32の場合→STM32CubeMXSTM32CubeIDE
いろいろあるがST社のもの。情報量も多い。

【インストールではまった!】
STM32CubeIDEを使うことを前提に、IDEだけをインストールすると、パッケージをダウンロードする際に、”Error downloading the following files."とメッセ―じが出ててしまう。STM32F103のパッケージをDLするも止まる。手動でインストールするものの、うまくビルトできない事態に・・・
ここに記載されている症状が出る。ここでも問題は解けていない。
で、家でインストールしたときはできて、職場でできなかった事から何が違うか?
解決方法
MXを先にインストールする。MXの状態ではすんなりSTM32F103などのPKGが自動でダウンロードされる。その状態を確認してから、IDEをインストールする。
するとサクッと問題が解決された。同じ症状で困っている場合は、お試しを。

【ピンアサイン】
Arduino→そもそもピンはアナログとデジタルで固定で、INPUT、OUTPUTを指定
例:void setup() {
  pinMode(PIN_LED0, OUTPUT);
  pinMode(PIN_SW,   INPUT);
}
void loop() {
  digitalWrite(PIN_LED0, 1);
  digitalRead(PIN_SW));
}

STM32
STM32CubeMXのソフトから指定する。GPIOなので、それぞれのピンの役割を個別に指定できる。Loopに相当する while (1)の箇所にコードを記載していく点は同じ

 while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }

【はまったところ】
ST-LINK V2の中華版は、PCにデバッグ出力できない=Arduinoのシリアルモニタに相当
センサから読み取れているか?とかが可視化できないので、開発に手間取る。
→ST-LINK V2の中華版を買うとそうなると知らなかった・・・
SWO:配線を繋げる改造をすればできるようになるらしいが、改造面倒

USB経由で出力できる(記事は先人の先輩方が解説)。
ここまでは、はやかったのだが、知らずに時間を使ったのが、floatを出力できない!!
→ 対処
syscalls.cをsrcに入れてあげて、コンパイルのスイッチに -u_printf_floatをOther flagsに追加する。知っていれば、なんて事はないが調べが浅く、たどり着くのに時間がかった・・・



ここまでできると、あとはArduinoと同じ。


コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

ILI9341 240X320 Arduino

Attiny85 FuseRest