新聞中心

stm32 獨(dú)立看門狗

作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
獨(dú)立看門狗(IWDG)由專用的低速時(shí)鐘(LSI)驅(qū)動(dòng),即使主時(shí)鐘發(fā)生故障它也仍然有效。IWDG最適合應(yīng)用于那些需要看門狗作為一個(gè)在主程序之外,能夠完全獨(dú)立工作,并且對(duì)時(shí)間精度要求較低的場(chǎng)合。WWDG最適合那些要求看門狗在精確計(jì)時(shí)窗口起作用的應(yīng)用程序。”
/*
* 采用獨(dú)立看門狗作為看門狗定時(shí)器
* 獨(dú)立看門狗由內(nèi)部專門的 40Khz 低速時(shí)鐘驅(qū)動(dòng),
* 即使主時(shí)鐘發(fā)生故障,它也仍然有效
*000:預(yù)分頻因子=4 // 最短時(shí)間 0.1 ms
*001:預(yù)分頻因子=8 // 最短時(shí)間 0.2 ms
*010:預(yù)分頻因子=16 // 最短時(shí)間 0.4 ms
*011:預(yù)分頻因子=32 // 最短時(shí)間 0.8 ms
*100:預(yù)分頻因子=64 // 最短時(shí)間 1.6 ms
*101:預(yù)分頻因子=128 // 最短時(shí)間 3.2 ms
*110:預(yù)分頻因子=256 // 最短時(shí)間 6.4 ms
*111:預(yù)分頻因子=256 //
*/
初始化,并且啟動(dòng)看門狗
void IWDG_Initial(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //①使能對(duì)寄存器 I 寫操作
IWDG_SetPrescaler(IWDG_Prescaler_16); //②設(shè)置 IWDG 預(yù)分頻值:設(shè)置 IWDG 預(yù)分頻值
IWDG_SetReload(0xFFF); //②設(shè)置 IWDG 重裝載值 定時(shí)時(shí)間1638.4ms
IWDG_ReloadCounter(); //③按照 IWDG 重裝載寄存器的值重裝載 IWDG 計(jì)數(shù)器
IWDG_Enable(); //④使能 IWDG
}
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能寫入PR和RLR
主程序中喂狗
void main void
{
while(1)
{
IWDG_ReloadCounter();// 喂狗 1.6 s的看門狗
}
}


關(guān)鍵詞: stm32獨(dú)立看門

評(píng)論


技術(shù)專區(qū)

關(guān)閉