STM32からのprintfデバッグでfloatを出力する

2017年11月4日

STM32関係でのメモ

開発環境は以下を組み合わせて使っています.

STMマイコンを含むARMマイコンはsemihostingという機能が備わっており,Eclipseのコンソールにprint()を用いてメッセージを出力できるので非常に便利です.(しかし使い過ぎるとそれなりに処理が重いです)

mpu9250を使ってみようと思い,細々と開発していました.
ハマった箇所があったので残します.

自身の環境ではsemihostingで出力する際に,float型の変数が出力できませんでした.
このように記述した場合

printf("%10.3f,%10.3f,%10.3f,%10.3f,%10.3f,%10.3f\r\n",
imu.gyr_data[0],
imu.gyr_data[1],
imu.gyr_data[2],
imu.acc_data[0],
imu.acc_data[1],
imu.acc_data[2]
);

このようにうまく表示されませんでした.

調べたらこんな記事が出てきました.
https://devzone.nordicsemi.com/question/5076/using-floats-with-sprintf-gcc-arm-none-eabi-nrf51822/

これにあるように,Eclipseの設定をいじります.

無事出来ました.(AK8963のIDが0なのは気にしないでください)