美文网首页
灵动微MM32F003硬件最小系统 --- 独立看门狗IWDG例

灵动微MM32F003硬件最小系统 --- 独立看门狗IWDG例

作者: 黄开通 | 来源:发表于2020-11-20 19:02 被阅读0次

    独立看门狗(IWDG)由低速时钟(LSI)驱动,即使注视中发声故障它依然有效。当看门狗被激活后,则在计数器计数至0x0000时产生复位。
    本例程首先控制LED快速闪动,然后启动IWDG,在while循环中执行喂狗操作,并控制LED慢速闪动。
    如果将喂狗操作屏蔽,则可以看到LED慢闪一下之后,马上进入快闪状态。实际上是由于没有喂狗操作,系统被复位了。
    设置IWDG主要有两个参数:预分频器和计数器。

    IWDG参数设置

    void Write_Iwdg_ON(u16 IWDG_Prescaler, u16 Reload)
    {
    
        RCC_LSICmd(ENABLE);                                                         //enable LSI
        while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
    
        PVU_CheckStatus();                                                          //get IWDG status
        IWDG_WriteAccessCmd(0x5555);
        IWDG_SetPrescaler(IWDG_Prescaler);
    
        RVU_CheckStatus();                                                          //get IWDG status
        IWDG_WriteAccessCmd(0x5555);
        IWDG_SetReload(Reload & 0xfff);
    
        IWDG_ReloadCounter();                                                       //load and enable IWDG
        IWDG_Enable();
    }
    

    下表是用户手册关于预分频器和计数器的关系:


    IWDG设置

    主程序执行流程

    int main(void)
    {
        u32 ulA = 0;
        SystemInit();
        RCC_ConfigInit();
        GPIO_ConfigInit();
    
        while(1) {
            ulA++;
            delayus(50);
            SetPB0Low();
            delayus(50);
            SetPB0High();
            if(ulA == 10) {
                ulA = 0;
                break;
            }
        }
    
        Write_Iwdg_ON(IWDG_Prescaler_256, 0xff);
        while(1) {
    #if 1
            Write_Iwdg_RL();                                                        //reload IWDG counter;
    #endif
            ulA++;
            delayus(10);
            if(ulA == 50) {
                SetPB0Low();
    
            } else if(ulA == 100) {
                SetPB0High();
                ulA = 0;
            }
    
    
        }
    }
    

    通过打开或关闭Write_Iwdg_RL()进行实验。

    相关文章

      网友评论

          本文标题:灵动微MM32F003硬件最小系统 --- 独立看门狗IWDG例

          本文链接:https://www.haomeiwen.com/subject/psljiktx.html