本帖最后由 zhangxiaolin 于 2019-6-6 12:52 编辑
在UCOS系统下,初始化独立看门狗ok后,在debug非全速运行模式下,看门狗为什么不会产生复位信号。这是第一个问题。debug模式下独立看门狗各个寄存器的值如下图所示:
硬件看门狗初始化相关代码如下:
void WatchDogInit(void)
{
//最长1s
RCC_LSICmd(ENABLE);
while(RCC_GetFlagStatus( RCC_FLAG_LSIRDY)==RESET);
/* Enable write access to IWDG_PR and IWDG_RLR registers */
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
/* IWDG counter clock: 40KHz(LSI) / 64 = 0.625 KHz */
IWDG_SetPrescaler(IWDG_Prescaler_64);
/* Set counter reload value to 624 (624+1)*1/0.625=1s,一个节拍1ms */ //
IWDG_SetReload(624);
/* Reload IWDG counter */
IWDG_ReloadCounter();
/* Enable IWDG (the LSI oscillator will be enabled by hardware) */
IWDG_Enable();
};看门狗的设置是没问题的,因为在正常运行模式下,如果在某个被监视的线程不去喂狗,是会产生看门狗复位信号的
希望各位技术大佬能够指点一二。
一周热门 更多>