STM32F030看門狗


STM32F030的看門狗分獨立看門狗和窗口看門狗。

獨立看門狗

使用獨立的LSI時鍾,因此一旦開啟就無法停止,除非復位。所以當使用stop模式時,就需要定時喚醒喂狗。

獨立看門狗配置代碼如下:

    if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
    {
        RCC_ClearFlag();
    }
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
    IWDG_SetPrescaler(IWDG_Prescaler_128);
    IWDG_SetReload(LsiFreq / 128);                //1s
    IWDG_ReloadCounter();
    IWDG_Enable();

窗口看門狗

使用PCLK1時鍾。睡眠模式下,時鍾停止。看門狗也停止計數。但喂狗有嚴格的時間限制,必須在規定的某段時間內喂狗。喂早和喂遲了都會導致系統復位。

窗口看門狗配置代碼如下:

    if (RCC_GetFlagStatus(RCC_FLAG_WWDGRST) != RESET)
    {
        RCC_ClearFlag();
    }
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
    WWDG_SetPrescaler(WWDG_Prescaler_8);
    //refresh window is: ~683 * (127-98)= 19.8ms < refresh window < ~683 * 64 = 43.7ms
    WWDG_SetWindowValue(98);        
    WWDG_Enable(127);
    bsp_StartAutoTimer(TMR_WWDG,TMR_PERIOD_30MS);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM