两只袜子 发表于 2021-8-17 16:39

AT32独立看门狗IWDG使用方法

AT32的看门狗是一个12位递减计数器,当看门狗递减到0时产生系统复位,使用LSI(频率大约为40Khz)作为看门狗时钟,,在应用程序中,需要不断地刷新计数器(俗称喂狗),以防止看门狗发生复位,看门狗虽然是一个很小的外设,功能也相对简单,但是对我们的设备能可靠的运行起到了很大的作用,它可以在一些意外情况(比如干扰,程序bug)导致程序跑飞时,复位mcu

/* 解锁看门狗写保护*/
IWDG_KeyRegWrite(IWDG_KeyRegWrite_Enable);

/* 设置分频系数为32*/
IWDG_SetPrescaler(IWDG_Psc_32);

/* 设置看门狗的复位时间为250ms. (LsiFreq一般等于40000hz)
   重载值= 250ms / (32/LsiFreq)
             = 0.25s / (32/LsiFreq)
             = LsiFreq/(32 * 4)
             = LsiFreq/128
*/
IWDG_SetReload(LsiFreq / 128);

/* 重载看门狗计数器*/
IWDG_ReloadCounter();

/* 使能看门狗 */
IWDG_Enable();


AT32关于看门狗的官方demo见以下路径
AT32F4xx_StdPeriph_Lib_V1.2.7\Project\AT_START_F403A\Examples\IWDG
页: [1]
查看完整版本: AT32独立看门狗IWDG使用方法