問題描述
在STM8L上面在開啓IWDG的情況下,讓設備進入halt模式,系統會應爲IWDG沒有餵狗而重啓,這是應爲IWDG的時鐘源爲LSI,在halt模式下LSI沒有關閉,IWDG還在計數所以導致系統重啓。
解決方法
1、在使用STVP燒錄工具燒錄時配置IWDG_HALT選項
2、在代碼中修改Option選項中的IWDG_HALT字節
FLASH_DeInit();
/* Define flash programming Time*/
FLASH_SetProgrammingTime(FLASH_ProgramTime_Standard);
/* Unlock flash data eeprom memory */
FLASH_Unlock(FLASH_MemType_Data);
/* Wait until Data EEPROM area unlocked flag is set*/
while (FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET);
//設置IWDG_HALT
FLASH_ProgramOptionByte(0x004808,0x02);