bb76cfd779
规则定案:常量在右(a>5)、保护宏XXX_H(禁双下划线)、 头文件常量用#define、存储类前缀(g_/s_)优先、允许void返回值 全库32个.h头文件保护宏 __XXX_H → XXX_H 改名(字节级替换) S1检查规则同步更新(拒绝双下划线),Inc/gpio.h 反向验证被正确拦截 规范示例矛盾修复:K&R括号、标准类型、变量初始化、命名常量、注释字段补全
80 lines
2.6 KiB
C
80 lines
2.6 KiB
C
/*
|
|
* 模块名称:UI Display Port (LVGL 离屏显示端口)
|
|
* 模块功能:提供 LVGL 1bpp 离屏渲染端口与远程 keypad 输入设备
|
|
* 适用平台:STM32F407ZGTx
|
|
* 作者:王建锋
|
|
* 创建日期:2026-08-29
|
|
* 修改记录:
|
|
* 2026-08-29 王建锋 创建初始版本
|
|
*/
|
|
#ifndef UI_PORT_H
|
|
#define UI_PORT_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* 屏幕尺寸与帧缓冲(160x160 1bpp = 3200 字节) */
|
|
#define UI_SCREEN_W 160
|
|
#define UI_SCREEN_H 160
|
|
#define UI_FB_SIZE ((UI_SCREEN_W * UI_SCREEN_H) / 8)
|
|
|
|
/* 远端按键码(与 DTU-HMI key.h 保持一致) */
|
|
#define UI_KEY_UP 0x02
|
|
#define UI_KEY_DOWN 0x40
|
|
#define UI_KEY_LEFT 0x10
|
|
#define UI_KEY_RIGHT 0x08
|
|
#define UI_KEY_ENTER 0x20
|
|
#define UI_KEY_ESC 0x01
|
|
|
|
/*
|
|
* 函数功能:初始化 LVGL 显示端口与按键输入设备
|
|
* 入口参数:无
|
|
* 返回值:0 - 成功,其他 - 失败(显示或输入设备创建失败)
|
|
* 限定条件:无
|
|
* 函数说明:1. 初始化 LVGL 内核并创建 1bpp 离屏显示设备
|
|
* 2. 创建 keypad 输入设备及默认输入组,用于菜单导航
|
|
* 3. 需在 lv_tick_inc/lv_timer_handler 被周期调用后方可刷新
|
|
*/
|
|
int ui_port_init(void);
|
|
|
|
/*
|
|
* 函数功能:获取内存帧缓冲首地址
|
|
* 入口参数:无
|
|
* 返回值:帧缓冲首地址 uint8_t * 固定长度 UI_FB_SIZE 字节
|
|
* 限定条件:ui_port_init() 已成功调用
|
|
* 函数说明:1. 帧缓冲由 flush 回调写入最新渲染结果
|
|
* 2. 供 RemoDispBus 服务端读取并推送至远端
|
|
*/
|
|
uint8_t *ui_port_get_framebuffer(void);
|
|
|
|
/*
|
|
* 函数功能:向输入队列喂入一个远端按键值
|
|
* 入口参数:key_val - 远端键码 uint8_t UI_KEY_* 取值之一
|
|
* 返回值:无
|
|
* 限定条件:无
|
|
* 函数说明:1. 将远端键码映射为 LVGL 按键后缓存
|
|
* 2. 由 keypad 读取回调在下次轮询时上报,驱动菜单导航
|
|
*/
|
|
void ui_port_queue_key(uint8_t key_val);
|
|
|
|
/*
|
|
* 函数功能:UI 周期步进(更新系统节拍并刷新 LVGL)
|
|
* 入口参数:tick_ms - 距上次调用的毫秒数 uint32_t 建议 10
|
|
* 返回值:无
|
|
* 限定条件:ui_port_init() 已成功调用
|
|
* 函数说明:1. 调用 lv_tick_inc 推进 LVGL 内部时钟
|
|
* 2. 调用 lv_timer_handler 处理重绘,结果经 flush 写入帧缓冲
|
|
* 3. 须由任务以固定周期调用,否则界面停止刷新
|
|
*/
|
|
void ui_port_step(uint32_t tick_ms);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* UI_PORT_H */
|