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


Previous: 7.3.4. リセットの検出

Up: 7.3. バックアップレジスタの利用方法

Next: 7.3.6. 書き込みデータの取得


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 7. バックアップレジスタ: 7.3. バックアップレジスタの利用方法:

7.3.5. バックアップレジスタの読み込み

 バックアップレジスタの値は、初期値又はバックアップドメインをリセットした後は0になる事が仕様上保証されています。そのためバックアップレジスタにあらかじめ0以外の値を書き込んでおき、後でそのバックアップレジスタの値をチェックすれば、その間にバックアップレジスタがリセットされたかどうかを確認することができます。ちなみにバックアップレジスタが0かどうかを確認したとしても、それだけではリセットされて0になったのか、プログラムであえて0を書き込んだのかを区別することができません。0以外であれば何でもいいでしょう。

 バックアップレジスタの内容を読み込むために使用するのが、BKP_ReadBackupRegister関数(ライブラリ 13?4)です。

ライブラリ 13?4 BKP_ReadBackupRegister関数

関数プロトタイプ

uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR)

 

動作

バックアップレジスタの中身を読み取ります。

引数

BKP_DR

読み取る対象のバックアップレジスタを指定します。BKP_DRx型のマクロで指定し、xにはバックアップレジスタの番号が入ります。

戻り値

読み取ったバックアップレジスタの値

 BKP_DRxの中身は単純なuint16_t型の定数値です。そこで、このプログラムでは、繰り返し処理で扱いやすいように、配列に値を格納しています。

uint16_t BKPDataReg[BKP_DR_NUMBER] =

? {

??? BKP_DR1, BKP_DR2, BKP_DR3, BKP_DR4, BKP_DR5, BKP_DR6, BKP_DR7, BKP_DR8,

??? BKP_DR9, BKP_DR10

? };

 このサンプルプログラムでは、BKPDataReg[0]に合い言葉を格納することにしましたので、これをチェックして、バックアップレジスタの内容がプログラム済みかを確認しています。ちなみにマクロ名のOPEN_SESAMEは「開けゴマ」で、特に深い意味はありません。

if( BKP_ReadBackupRegister(BKPDataReg[0]) == OPEN_SESAME )


Previous: 7.3.4. リセットの検出

Up: 7.3. バックアップレジスタの利用方法

Next: 7.3.6. 書き込みデータの取得


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