STM8S执行wfi()导致无法复位
硬件平台是:STMS05K6,开发工具是IAR;伪代码如下,偶尔会出现死机,按下复位按钮也没有用,只能重新上电。如果我把看门狗的代码去掉,并去掉wfi()指令,就没有问题。
是不是我对看门狗使用不正确,还是其他的问题?
程序伪代码如下:
void main(void)
{
//初始化看门狗
IWDG->KR = IWDG_KEY_ENABLE;
IWDG->KR = IWDG_WriteAccess_Enable;
IWDG->RLR = 0xff;
IWDG->PR = IWDG_Prescaler_64;
IWDG->KR = IWDG_WriteAccess_Disable;
//初始化定时器,10ms中断一次
....
while(1)
{
if(is_10ms)
{ //10ms
is_10ms = 0;
IWDG->KR = IWDG_KEY_REFRESH;
}
....执行其他操作
wfi();
nop();
nop();
}
}
死机时程序跑到那里了?
页:
[1]