This commit is contained in:
2026-03-20 21:16:58 +08:00
parent 286ff98b8e
commit 90c3d919df
248 changed files with 94554 additions and 0 deletions

63
user/MCU/lhl_watchdog.c Executable file
View File

@@ -0,0 +1,63 @@
#include "../main/SystemInclude.h"
/**------------------------------------------------------------------------
* @brief ϵͳ IWDG <20><>ʼ<EFBFBD><CABC>
* @note <20>ú<EFBFBD><C3BA><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>
* - ֹͣĬ<D6B9><C4AC><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> IWDG<44><47><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>Ĭ<EFBFBD><C4AC>Լ20<32>븴λ<EBB8B4><CEBB>
* - <20><><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
* - <20><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>Ƶ<EFBFBD><C6B5>Ϊ 32 <20><>Ƶ<EFBFBD><C6B5>LSI Լ 32kHz / 32 = 1kHz<48><7A>
* - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ֵΪ 4000<30><30><EFBFBD>õ<EFBFBD>Լ 4 <20><><EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
* - <20><><EFBFBD><EFBFBD> IWDG
* @warning һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IWDG <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ι<EFBFBD><CEB9><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>λ<EFBFBD><CEBB><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ж<EFBFBD><D0B6>е<EFBFBD><D0B5><EFBFBD> Clear_WDT()<29><>
* @param <20><>
* @example SystemIWDGInit();
**/
void SystemIWDGInit(void)
{
// 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();
}
/*
//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
*/
/**------------------------------------------------------------------------
* @brief ֹͣ IWDG<44><47><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note <20><><EFBFBD>ô˺<C3B4><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>رտ<D8B1><D5BF>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ͹<DAB5><CDB9><EFBFBD>ģʽ<C4A3>¡<EFBFBD>
* <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȫ<EFBFBD>رգ<D8B1>Ҳ<EFBFBD><D2B2>ֱ<EFBFBD>ӵ<EFBFBD><D3B5>á<EFBFBD>
* @param <20><>
* @example Stop_WDT();
**/
void Stop_WDT(void)
{
LHL_IWDG_Stop();
}
/**------------------------------------------------------------------------
* @brief ι<><CEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note Ӧ<><D3A6> IWDG <20><>λ<EFBFBD><CEBB>ʱǰ<CAB1><C7B0><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>ã<EFBFBD><C3A3><EFBFBD>ֹϵͳ<CFB5><CDB3>λ<EFBFBD><CEBB>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ж<EFBFBD><D0B6>е<EFBFBD><D0B5>á<EFBFBD>
* @param <20><>
* @example Clear_WDT();
**/
void Clear_WDT(void)
{
//LHL_IWDG_Reload();
}