ものがたりSTM32ウィンドウウォッチドッグWWDGライブラリ関数

カウンタのWWDG電流値と活性化ビットレジスタと関連WWDG_CR。下図のように:

STM32f10xライブラリ関数と2つの設定WWDG_CR [0:6]を提供ビットモード。

 

  •  WWDG_SetCounter方法
#define BIT_Mask = 0x7Fの
/ *
* * @briefはWWDGカウンタ値を設定します。 * @paramカウンター:ウォッチドッグカウンタの値を指定します。 *このパラメータは、0x40のと0x7Fまでの間の数値でなければなりません。 * @retvalなし * / 無効(カウンターuint8_t)WWDG_SetCounter { / * パラメータを確認してください* / assert_param(IS_WWDG_COUNTER(カウンター)); / * Tへの書き込み[6:0]ビットは、実行する必要のカウンタ値を設定しないように リード・モディファイ・ライトと、WDGAビットに0を書き込むことは何もしません* / WWDGを - > CR =カウンター&BIT_Mask。 }

直接入ってくるWWDG_CRカウンタレジスタの値として、方法。

  • WWDG_Enable方法
#define CR_WDGA_Setは0x80 
/ *
* * @briefはWWDGを有効にし、カウンタ値をロードします。 * @paramカウンター:ウォッチドッグカウンタの値を指定します。 *このパラメータは、0x40のと0x7Fまでの間の数値でなければなりません。 * @retvalなし * / 無効(カウンターuint8_t)WWDG_Enable { / * パラメータを確認してください* / assert_param(IS_WWDG_COUNTER(カウンター)); WWDG - > CR = CR_WDGA_Set | カウンタ; }

レジスタCRの値としては0x80(即ちWDGA 1)|方法着信カウンタ。

 

だから、潜在的な問題は、我々はWWDG_Enableメソッドを呼び出すと、あなたは初期化カウンタを指定しなければならない、ということでもあります。

私は前にこのミスを犯してきた後、私は関数名がWWDGが有効になっているため、ウィンドウウォッチドッグを有効にするWWDG_Enable(0x80の)を使用しようとしましたが、ボードが再起動し続けていることが判明し、慎重な分析は、それがWWDG_Enable(0x80の)WWDGを呼び出しました - > CR = CR_WDGA_Set | 0x80の= 0x80の場合、登録WWDG_CR [0:6]ウィンドウウォッチドッグは狂気にリセットするように、0になります。

このレコードには、このエラーが発生しました。

 

おすすめ

転載: www.cnblogs.com/jackis-tang/p/11449029.html