開発のヒント

リセット、クロック、電源制御

ソフトウェア・リセットの方法

STM32ファミリの標準ライブラリでは、ハードウェア抽象化レイヤ(HAL:Hardware Abstraction Layer)でプログラムを記述しています。

STM32に、ソフトウェアでリセットをかける場合はHALの「HAL_NVIC_SystemReset」を使用すると、簡単にシステム・リセットをかけることができます。「HAL_NVIC_SystemReset」を応用すると、フォールトなどが発生した際にもシステム・リセットをかけることができます。

例えば、用法フォールト・ハンドラの中に「HAL_NVIC_SystemReset」を記述します。すると、未定義命令の実行などの用法フォールトが発生すると、用法フォールト・ハンドラが実行され、さらにその中の「HAL_NVIC_SystemReset」が実行されて、システム・リセットがかかります。用法フォールト例外処理を有効にするには、前もってSCBのレジスタのUSGFAULTENAを有効にする必要があります。

過去の開発のヒントはこちら