/** ****************************************************************************** * @file User\App\task_sys.c * @author 路淮 * @version v0.1 * @date 2026-05-21 * @brief 系统任务 ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "task_sys.h" void HeartBeat_Sign(void); /** * @brief sys_task_function:系统任务 * @note none * @param none * @retval none */ void sys_task_function(void const *argument) { while (1) { HeartBeat_Sign(); // 指示灯、蜂鸣器 // HAL_IWDG_Refresh(&hiwdg); //喂狗 osDelay(50); } } /** * @funNm : HeartBeat_Sign * @brief : 心跳指示灯、蜂鸣器 云快充心跳 * @param : none * @retval: void */ static uint32_t last_heartbeat_tick[MAX_CHARGER_COUNT] = {0}; void HeartBeat_Sign(void) { int i; uint32_t now = HAL_GetTick(); bool any_online = false; /* 6路桩独立心跳,互不影响 */ for (i = 0; i < MAX_CHARGER_COUNT; i++) { if (g_charger_manager.charger_piles[i].is_online) { any_online = true; if ((now - last_heartbeat_tick[i]) >= 8000) { last_heartbeat_tick[i] = now; charger_to_server_0X03(i + 1, 1); } } } if (any_online) { RUN_EVERY(50, tick_B, { System_Mode_Led_Toggle(); }); } else { RUN_EVERY(500, tick_C, { System_Mode_Led_Toggle(); }); } RUN_EVERY(1000, tick_D, { System_Run_Led_Toggle(); }); }