29 lines
1.9 KiB
Markdown
29 lines
1.9 KiB
Markdown
# 模块拆分 - 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 -->
|