1、问题
在配置stm8独立看门狗的时候,先设置分频、重载寄存器,然后启动看门狗,发现不断复位。
按照手册中的表格,看门狗的超时时间应该是1s,但是在这1s中多次喂狗也不断复位,然后排查到是配置顺序的问题,先开启开门狗,再配置寄存器可以解决。
2、原因都在手册里
Once enabled,使能后,所以,先使能配置才有效。
想要配置好再启动的想法,只是一厢情愿,指单方面的愿望或不考虑客观实际情况的主观意愿。
3.代码
//独立看门狗初始化,256分频,0xff,大约1s
void IWDG_Init()
{
CLK_LSICmd(ENABLE); //开启LSI
while((CLK->ICKR&(1<<4))==0); //等待稳定
IWDG_Enable(); //使能看门狗
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //解除写保护
IWDG_SetPrescaler(IWDG_Prescaler_256); //分频系数256
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //解除写保护
IWDG_SetReload(0xff); //重装载0xff
}