Stm32CubeMX (Ver4.14.0) でRTCを使う

最近、stm32Fシリーズのプログラムを書くのにstm32CubeMXに頼り切っています。
使い始めた頃は「使えるかな?」と半信半疑だったのですが、新しいプロジェクトを作る時に最も面倒なクロックやタイマなどの周辺機器の初期化がGUIで設定できる快適さは一度嵌ったら抜け出せません。

stm32cubeMX1
最近のバージョンではFreeRTOSを使うプロジェクトもほぼ問題なく作ってくれるのでFreeRTOSがますます使いやすくなりました。

RTCについて自動生成ではうまく対応できないケースが発生したのでメモとして書いておきます。

RTC(リアルタイムクロック)を使う場合はVbat端子にバッテリを接続して電源を切っても時刻を覚えているようにするのですが、stm32CubeMXが作る初期化関数はRTCの初期化だけでなく日付と時間も初期化してしまいます。
設定でどうにかなるのでは?としばらくトライしてみましたがどうにもならないのであきらめてその部分の初期化だけはサンプルを参考に自分で書きました。
stm32CubeMXでProjectを再生成する時に下のようなしくみでユーザーが書いた部分を保存してくれるのですが初期化部分は書き換えてしまうのでプロジェクト再生成をする度にRTCの初期化をコメントアウトする必要があります。

/* USER CODE BEGIN … */

この間に書いたプログラムはプロジェクトを再生しても変更されない。

/* USER CODE END … */

このような例がたまにあるのですが、それを差し引いてもstm32CubeMXは素晴らしい支援ツールです。
今まで全く興味の無かったPICに触る必要が出来てMPLAB-Xをインストールして使ってみるとMicroChipも同じようなことが出来るようになっているんですね。
ただ、MicroChipはサポートしなければならないデバイスが多すぎるためかプロジェクト自動生成ツールの完成度としてはstm32CubeMXの方が一歩も二歩も先を進んでいるような印象です。

ルネサスが最近になってガジェルネとかで一般ユーザーに取り入ろうとしてるようですがstm32CubeMXやMPLABの進化を見ていると差が広がるばかりではないのかと少し心配になります。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)