EMS 知识库
首页 / knowledge/代码解析/hmi/led

app_led.h

源文件路径:hmi/led/app_led.h 所属模块:hmi/led(人机界面 - WS2812 灯带应用层) 代码行数:47

1. 文件职责

本文件是新增 WS2812 灯带应用层(2026-04-17 新建)的对外头文件,只声明两个函数 led_test_color_cycle()、led_display_task(),并定义一个宏 LED_TASK_PERIOD。

它处在"逻辑状态 → 灯带颜色"这条数据流的入口位置:led_display_task() 是设计上供 uCOS-II 任务周期性调用的刷新入口(周期 10 ms 由 LED_TASK_PERIOD 描述),内部从 BMS/网络状态取值后调用灯带编码层 led_dev.c。头部唯一的实现在 hmi/led/app_led.c。

本文件被 hmi/led.h:17 包含,从而间接暴露给 hmi/led.c、hmi/key.c、system/board_init/board_init.c、midware/debug/board_test.c 等所有包含 led.h 的模块;它自己又 #include "app_led_cfg.h" 把颜色枚举、颜色宏与 led_dev.h 一并传递下去。

2. 关键数据结构与宏

名称类型(结构体/枚举/宏/联合体)说明
__APP_LED_H__宏(防重包含)头文件保护宏,hmi/led/app_led.h:10-11
LED_TASK_PERIOD宏(= 10)设计上的灯带刷新周期(单位应为 ms),hmi/led/app_led.h:20。全工程仅此一处出现,当前未被任何代码使用

本文件不含结构体、枚举、联合体定义,也不声明任何全局变量。

3. 函数清单

本文件只有函数声明,没有任何函数定义。

函数名作用域(static/全局)说明(一句话)
led_test_color_cycle全局(声明,hmi/led/app_led.h:42)灯带颜色循环自检函数;全工程只有这一处声明,没有任何定义
led_display_task全局(声明,hmi/led/app_led.h:43)灯带刷新任务函数,定义于 hmi/led/app_led.c:68

4. 核心逻辑解析

本文件是纯声明头,无逻辑。相关的时序约定:

5. 对外接口

本文件导出(供外部使用)

名称类型使用方
led_test_color_cycle函数声明(无定义)无调用点
led_display_task函数声明无调用点(全工程 grep 只命中 app_led.c:68 的定义与 app_led.h:43 的声明)
LED_TASK_PERIOD宏无使用点

本文件间接暴露(通过 include 传递)

名称来源说明
led_color_t、STATUS_LED_COLOR_E、SOC_LED_COLOR_E、SYS_COLOR_*、SOC_COLOR_*、sys_current_status_colorhmi/led/app_led_cfg.h颜色定义与系统状态色全局量,hmi/led/app_led.h:16
WS2812_FLAG_U、RKP_LED_NUM、LED_SOC_NUM、LED_LONG_NUM、LED_BITS、LED_BUFFER_SIZE、T0_PULSE/T1_PULSE、g_u16_ws2812_data、g_u_ws2812_flag、ws2812_*()hmi/led/led_dev.h(经 app_led_cfg.h → led_dev.h)WS2812 编码层

6. 依赖关系

7. 备注与风险点