マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 10.6.1.2. STANDBYモードへの移行

Up: 10.6.1. WAKEUPピンによる復帰

Next: 10.6.2. RTCアラームによる復帰


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 10. 低電力モード: 10.6. STANDBYモード: 10.6.1. WAKEUPピンによる復帰:

10.6.1.3. StandByフラグの確認

 STANDBYモードから復帰した場合、「STANDBYモードから復帰してリセットがかかったこと」をStandByフラグによって知ることができます。このために使用するのがPWR_GetFlagStatus関数(ライブラリ 16?4)です。

ライブラリ 16?4 PWR_GetFlagStatus関数

関数プロトタイプ

FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG )

動作

指定したフラグがセットされているかどうかを確認します。

引数

PWR_FLAG

確認する対象のフラグを以下のいずれかのマクロで指定します。

PWR_FLAG_WU

Wake Upフラグ

PWR_FLAG_SB

StandByフラグ

PWR_FLAG_PVDO

PVD出力

戻り値

フラグの状態(SET又はRESET)

 サンプルプログラムでは以下のようにして条件分岐させています。これにより通常の電源オンと単なる復帰とを区別できます。

if (PWR_GetFlagStatus(PWR_FLAG_SB) != RESET)

 フラグを確認するプログラムでは、確認した後に、PWR_ClearFlag関数(ライブラリ 16?5)でフラグをクリアしておきましょう。

ライブラリ 16?5 PWR_ClearFlag関数

関数プロトタイプ

void PWR_ClearFlag(uint32_t PWR_FLAG )

動作

電源制御関係のフラグをクリアします。

引数

PWR_FLAG

クリアする対象のフラグを以下のいずれかのマクロで指定します。

PWR_FLAG_WU

Wake Upフラグ

PWR_FLAG_SB

StandByフラグ

戻り値

フラグの状態(SET又はRESET)

 サンプルプログラムでは以下のようにしてStandByフラグをクリアしています。以下のようにcprintf関数を実行しているわけですが、こちらの関数は当然実行されますので、ちゃんとターミナルにメッセージが表示されます。

PWR_ClearFlag(PWR_FLAG_SB);

//Send recover message

cprintf(“\r\nRecovered from Standby Mode. Type any key to re-enter into Standby Mode\r\n”);

コラム16?1 STM32-H103WAKEUPボタンについて

 STM32-H103WAKEUPボタンはSTM32WAKEUPピンに接続されているのですが、その間にプルアップ処理されています。STM32PA0WAKEUPピンとして使用するように設定すると、内部的にプルダウンされます。そうするとPA0に入力される電位が中途半端な値となるため、WAKEUPピンとして正常に動作することが保証されません。

 筆者が試したところ、WAKEUPピンをRUNモードへの復帰のためのトリガとして使用する分には問題なかったのですが、次項のRTCアラームを使用した復帰ができませんでした。STM32-H103を使用する場合には注意が必要です。


Previous: 10.6.1.2. STANDBYモードへの移行

Up: 10.6.1. WAKEUPピンによる復帰

Next: 10.6.2. RTCアラームによる復帰


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166