STM32L4系列的单片机,在stop模式或是standby模式下可以停止看门狗计数器,唤醒后,看门狗继续计数。这样,在单片机休眠期间,就可以不用喂狗,避免单片机频繁唤醒,可以节约更多能耗。
配置需要读写芯片内部的OptionBytes,STM32L4的HAL库提供了操作选项字节的方法。
以下代码配置了两个功能:(1)、配置stop模式停止看门狗计数;(2)、配置启用硬件看门狗(芯片上电后会自动开启看门狗)
注意:慎重使用硬件看门狗功能。如果开机没有配置看门狗计时器,而又打开了硬件看门狗功能,因为芯片默认的看门狗复位计时器值很小,所以系统会一直重启。
切记要配置了看门狗计时器以后再去开硬件看门狗功能。
/* USER CODE BEGIN 0 */
void Config_Option_Bytes()
{
FLASH_OBProgramInitTypeDef OptionsBytesStruct;
//改写option时,芯片首先会自动擦写掉flash里所有option值,然后再写入。
//所以要先把当前值读出来,改变某一位后,再写进去
HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct);
if ((OptionsBytesStruct.USERConfig & (FLASH_OPTR_IWDG_STOP | FLASH_OPTR_IWDG_SW)) != 0)
{
//没有配置过就配置一次,有必要判断一下是否配置过,因为每次配置完都会导致重启,不能每次上电都无条件配置一次
OptionsBytesStruct.OptionType = OPT