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

29 lines
1.9 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)
本模块描述 Truly AMOLED (RM69310) 屏幕的底层 SPI 通信、物理视窗偏置及文本/大图标像素刷写驱动。本模块为纯输出执行层,由当前活跃的前台 App 调度。
## 1. 模块职责说明
* **职责范围**
1. **服务应用显示**:不存储系统页面逻辑,仅提供底层画图、画字、清屏接口,供当前前台 App如待机时钟应用、菜单应用`OnStart` 或重绘标志触发时调度写入。
2. **局部窗口硬件偏置**
`LCD_SetWindow` 设置 GRAM 窗口时X 轴坐标必须强制加 4 像素(即 `x1 += 4`, `x2 += 4`),以对齐 Truly AMOLED 屏的物理视窗偏置。
3. **A11y 无障碍大字模渲染**
* 提供 `16x32px` 标准无障碍英文字符点阵字库。
* 提供 `32x64px` 超大数字字符点阵字库(专用于时钟)。
* 提供 `48x48px``64x64px` 传感器、锁具、摄像头位图渲染接口。
* 实现了水平居中排版公式,防止大字超出 120 像素物理宽度。
---
## 2. 接口与函数说明
* `void LCD_Init(void)`:配置 Pin 9 到 Pin 14 的 SPI 通信总线引脚为推挽输出。拉高 `SHUT` 稳定后,向 RM69310 芯片写入初始化指令序列。
* `void LCD_SetWindow(u16 x1, u16 y1, u16 x2, u16 y2)`:设置局部像素写入视窗,自动执行 `+4` 偏置修正。
* `void LCD_Clear(u16 color)`:用指定颜色刷满屏幕 GRAM。
* `void LCD_ShowStringCentered(u16 y, char *str, u16 fc, u16 bc)`:居中渲染 16x32 大字符。
* `void LCD_ShowString32x64Centered(u16 y, char *str, u16 fc, u16 bc)`:居中渲染 32x64 超大字符。
* `void LCD_ShowImage(u16 x, u16 y, u16 w, u16 h, const u8 *img, u16 fc, u16 bc)`:将单色大位图写入屏幕指定 GRAM。
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->