Files
stc32g128k/Docs/50_module-breakdown/mod-lcd.md

38 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 模块拆分 - AMOLED 显示与字模驱动 (Docs/50_module-breakdown/mod-lcd.md)
本模块管理 0.95寸 Truly AMOLED 屏幕引脚、电平控制、SPI 传输和无障碍大字/大图标渲染(分辨率为 120x240 像素)。
## 1. 模块职责说明
* **职责范围**
1. 提供底层的 SPI 单向命令/数据通道。
2. 控制 `SGM_CTRL` 供电管脚以使能 SGM3833 PMIC。
3. 支持屏幕窗口配置,实现底层清屏与局部像素写入。
4. 读取 `lcd_font.h` 库,在指定坐标绘制 16x32 大字符、32x64 超大字符与 48x48/64x64 超大单色位图。
5. 实现各业务状态屏幕无障碍A11y画面绘制与水平垂直居中对齐。
## 2. 底层显示接口
* `void LCD_Init(void)`:初始化 LCD 引脚,置 `SGM_CTRL = 1` 使能 SGM3833 供电,并发送 RM69310 AMOLED 控制器的初始化寄存器配置序列。
* `void LCD_WriteCmd(u8 cmd)`:拉低 `LCD_RS` 发送 SPI 命令。
* `void LCD_WriteData(u8 dat)`:拉高 `LCD_RS` 发送 SPI 数据。
* `void LCD_SetWindow(u16 x1, u16 y1, u16 x2, u16 y2)`:设置局部像素绘制范围,适配 Truly 120x240 竖屏对齐(处理 X 轴偏移量 +4
* `void LCD_Clear(u16 color)`:将整块屏幕刷写为特定背景色。
## 3. 图文绘制与 UI 渲染
* `void LCD_ShowChar(u16 x, u16 y, char c, u16 fc, u16 bc)`:绘制字符。
* `void LCD_ShowStringCentered(u16 y, char *str, u16 fc, u16 bc)`:在 120 像素宽屏幕上水平居中绘制 16x32px 宽的大字符串。
* `void LCD_ShowString32x64Centered(u16 y, char *str, u16 fc, u16 bc)`:在 120 像素宽屏幕上水平居中绘制超大 (32x64px) 数字。
* `void LCD_ShowImage(u16 x, u16 y, u16 w, u16 h, const u8 *img, u16 fc, u16 bc)`:在指定区域绘制单色位图(支持 32x32, 48x48, 64x64 格式)。
* `void UI_ShowClockPage(SystemState state, u8 hour, u8 min)`渲染时钟待机页面120 宽大字版布局32x64 走时时间,电量大图标)。
* `void UI_ShowMenuPage(u8 selected_item)`渲染无障碍主选择菜单单页单大图标48x48px与大文字16x32px
* `void UI_ShowSetTimePage(u8 editing_field, u16 current_value)`:渲染大字单参数设定页面(如调整 `HEURE` 时的超大数值显示)。
* `void UI_ShowArmDisarmSelectPage(u8 current_selection)`:渲染大图文布撤防手动切换界面。
* `void UI_ShowAlarmPage(char *sensor_name, u8 zone)`:渲染防区告警页面,显示 64x64px 超大传感器图标、16x32px 闪烁文字与 4px 粗警告边框。
* `void UI_ShowPairSearchPage(void)`:渲染对码等待搜索状态(含 64x64px 雷达图标)。
* `void UI_ShowPairConfirmPage(u8 type, u8 selected_suffix)`:渲染对码序号微调页。类型与 48x48px 图标只读,序号 `[ selected_suffix ]` 以 32x64px 超大字模闪烁显示。
* `void UI_ShowBindingPage(void)`:渲染与 IPC 绑定对码界面,含 48x48px 摄像头大图标与 16x32px 发送提示,底部显示 Factory ID。
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->