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); //打开窗口看门狗时钟
由于中断尚未开启,也无法进入中断。求原因。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>