Files
CHJ/user/MCU/lhl_watchdog.c

63 lines
1.9 KiB
C
Raw Permalink Normal View History

2026-03-20 21:19:53 +08:00
#include "../main/SystemInclude.h"
2026-03-20 21:16:58 +08:00
2026-03-20 21:19:53 +08:00
/**------------------------------------------------------------------------
* @brief ϵͳ IWDG <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @note <EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* - ֹͣĬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> IWDG<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>Լ20<EFBFBD>λ<EFBFBD><EFBFBD>
* - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>Ϊ 32 <EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>LSI Լ 32kHz / 32 = 1kHz<EFBFBD><EFBFBD>
* - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>ֵΪ 4000<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Լ 4 <EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* - <EFBFBD><EFBFBD><EFBFBD><EFBFBD> IWDG
* @warning һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IWDG <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ι<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ж<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD> Clear_WDT()<EFBFBD><EFBFBD>
* @param <EFBFBD><EFBFBD>
* @example SystemIWDGInit();
**/
void SystemIWDGInit(void)
2026-03-20 21:16:58 +08:00
{
// 1. IWDG<44>ϵ<EFBFBD><CFB5><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʱ<EFBFBD><CAB1>Դ32K LSI<53><49>Ĭ<EFBFBD>ϸ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Լ20<32><30>
LHL_IWDG_Stop();
// 2. д<><D0B4>WDG<44><47><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>WDGһ<47><D2BB>Reload<61><64><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
LHL_IWDG_Unlock();
// 3. <20>趨LSI 32<33><32>Ƶ<EFBFBD><C6B5>Լ1KHz<48><7A><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ256<35><36>Ƶ
LHL_IWDG_SetPrescaler(IWDG_PRESCALER_32, LHL_NRM_TIMEOUT);
// 4. IWDG<44><47>12bit<69>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ4095<39><35>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ֵ0x9C0<43><30>
LHL_IWDG_SetReload(4000, LHL_NRM_TIMEOUT);
// 5. <20>Զ<EFBFBD>װ<EFBFBD>ز<EFBFBD><D8B2><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>У<EFBFBD><D0A3><EFBFBD>Լ4000*1KHz=4S<34><53>λ
LHL_IWDG_Start();
}
2026-03-20 21:19:53 +08:00
/*
2026-03-20 21:16:58 +08:00
//void LHL_IWDG_Reload(void);//д<><D0B4>0xAAAA<41><41>װ<EFBFBD><D7B0>IWDG
//LHL_StatusTypeDef LHL_IWDG_Stop(void); //<2F><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>IWDG
//LHL_StatusTypeDef LHL_IWDG_Resume(void);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IWDG
//LHL_StatusTypeDef LHL_IWDG_Start(void);//д<><D0B4>0xAAAA<41><41>װ<EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD>IWDG
*/
2026-03-20 21:19:53 +08:00
/**------------------------------------------------------------------------
* @brief ֹͣ IWDG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note <EFBFBD><EFBFBD><EFBFBD>ô˺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>رտ<EFBFBD><EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ͹<EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD>¡<EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ȫ<EFBFBD>رգ<EFBFBD>Ҳ<EFBFBD><EFBFBD>ֱ<EFBFBD>ӵ<EFBFBD><EFBFBD>á<EFBFBD>
* @param <EFBFBD><EFBFBD>
* @example Stop_WDT();
**/
void Stop_WDT(void)
2026-03-20 21:16:58 +08:00
{
LHL_IWDG_Stop();
}
2026-03-20 21:19:53 +08:00
/**------------------------------------------------------------------------
* @brief ι<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note Ӧ<EFBFBD><EFBFBD> IWDG <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ʱǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>ֹϵͳ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD>á<EFBFBD>
* @param <EFBFBD><EFBFBD>
* @example Clear_WDT();
**/
void Clear_WDT(void)
2026-03-20 21:16:58 +08:00
{
//LHL_IWDG_Reload();
}