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();
|
|
|
|
|
|
}
|
|
|
|
|
|
|