开启窗口看门狗时钟便开始计数??

2019-10-15 20:35发布

void        WWDG_Init(uint8_t Counter ,uint8_t WindowValue ,uint32_t Prescaler)
{
        BSP_IntVectSet(BSP_INT_ID_WWDG ,BSP_WWDG_IntHandler);
        BSP_IntEn(BSP_INT_ID_WWDG);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG ,ENABLE);                                //打开窗口看门狗时钟
        WWDG_DeInit();                                                                                                        //恢复默认值
        WWDG_SetPrescaler(Prescaler);                                                                        //设置分频系数
        WWDG_ClearFlag();                                                                                                //清除提前唤醒中断标志位
        WWDG_EnableIT();                                                                                                //使能中断       
        WWDG_SetWindowValue(WindowValue);                                                                //设置(上)窗口寄存器值       
        WWDG_Enable(Counter);                                                                                        //设置存储计数器值       
}

main函数中调用        PCI_WWDG_Init(0x7F,0x41,WWDG_Prescaler_8);
执行下面这句打开时钟时,WWDG寄存器的值开始变化,这是为什么?这样导致程序一直无故复位。
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG ,ENABLE);                        //打开窗口看门狗时钟
由于中断尚未开启,也无法进入中断。求原因。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。