今回はSTM32マイコンでソフトリセットの使用方法について紹介します。
I2Cのデバイスが検出できない場合や何かしらの異常が発生した場合に
電源投入時の状態に初期化したい場合があります。
その場合に便利な機能がソフトリセットです。
使用するSTM32マイコンのコアに応じて、
ヘッダが異なります。
CortexM0の場合は#include "core_cm0.h"
CortexM3の場合は#include "core_cm3.h"
CortexM4の場合は#include "core_cm4.h"
必要に応じて、変更します。
ソフトリセットを行う関数は
NVIC_SystemReset();
です。
何かしらの異常が発生した後に
上記の関数を入れておくと、
ソフトリセットが掛かります。
異常が連続して起きた場合に変な挙動にならないように
ソフトリセットの使い方には要注意ですが、
比較的簡単に実装できました。