# LCD1602A 液晶(CYD) 触控 + LVGL 参考 `tftest` / `hw269test` / `CYD_PROJECT_GUIDE.md`。 LCD1602A(HD44780)经 **PCF8574 I2C 转接板** 驱动:改两行文字、背光、脚位映射。 用途:16×2 **字符提示屏**(状态、读数、短菜单)。驱动简单、资料多;不是彩屏替代品。本工程用于在 CYD 上验证接线与显示是否正常。 ## 硬件 | 项目 | **2.8"(默认 `cyd`)** | **3.5C(`cyd_35r`)** | |------|------------------------|------------------------| | 板子 | ESP32-2432S028R | ESP32-3248S035C | | 屏 / 触控 | ILI9341 + XPT2046 SoftSPI | ST7796 + GT911 I2C | | TFT 背光 | GPIO21 | **GPIO27** | | LCD SDA | **GPIO22** | **GPIO22**(不变) | | LCD SCL | **GPIO27** | **GPIO21**(2.8 的 27 → 21) | | LCD 总线 | `Wire` | `Wire1`(GT911 占 `Wire` 33/32) | 接线: | LCD1602A(I2C) | 2.8" CYD | 3.5" C CYD | |---------------|----------|------------| | VCC | **5V**(推荐) | 同左 | | GND | GND | GND | | SDA | GPIO22 | GPIO22 | | SCL | GPIO27 | **GPIO21** | 上电扫描 `0x27 / 0x3F / 0x26 / 0x3E / 0x20 / 0x38`。串口与 TFT 状态栏显示是否找到地址。 ### 对比度(蓝色电位器) - 背光能亮但看不到字:**先拧 I2C 小板上的蓝色电位器**(最常见原因)。 - **不能软件调节**。PCF8574 只控 RS/RW/E/数据线/背光,**不接 Vo**;Vo 只接到电位器。 - 拧到字清晰、背景无明显黑块即可。 ### 背光与省电 - **BL ON/OFF** 只开关背光晶体管,不影响已写入的字符内容。 - 常见蓝底白字模块:**关背光后室内几乎看不清字**(靠背光透射);关背光是为了省电/息屏,不是“暗光可读”。 - 要关背光仍可读,需反射型字符屏等另一类硬件。 ### 仍无字时 1. 确认已调对比度 + VCC=5V 2. TFT 点 **Map** 换 PCF8574 脚位映射,再点 **Hello** 3. 看串口是否有 `PCF8574 found @ 0x..` / `LCD1602A OK` 4. 3.5:确认 SCL 接的是 **21** 不是 27(27 是 TFT 背光) ## 操作 - 中间两行:当前 LCD 内容预览(16 字符/行) - **Demo**:循环示例文案 - **Hello**:`Hello World!` / `LCD1602A` - **Map**:切换 I2C 背包脚位映射并重新初始化 - **BL ON/OFF**:背光开关(关后通常不可读) ## 构建 / 烧录 ```powershell # 2.8" pio run -e cyd -t upload # 3.5C pio run -e cyd_35r -t upload ``` ## 预编译固件 ```powershell # 2.8" cd firmware\cyd .\flash.ps1 # 3.5" cd firmware\cyd_35r .\flash.ps1 # 或 .\flash.ps1 -Port COMx ``` 重新导出: ```powershell .\firmware\export_from_build.ps1 .\firmware\export_from_build.ps1 -Env cyd_35r ``` ## 变更记录 | 日期 | 说明 | |------|------| | 2026-10-23 | 初版:I2C LCD1602A(SDA22/SCL27)+ SoftSPI 触控 + LVGL;Demo/Hello/背光 | | 2026-10-23 | 修空白屏:对齐 LiquidCrystal_I2C 时序;增加 Map;提示拧蓝色对比度电位器 | | 2026-10-23 | 文档:对比度仅硬件可调、关背光通常不可读、用途与排障说明 | | 2026-10-25 | 按指南修正 3.5:BL=27、外设 22+21、GT911 INT 复位后 INPUT、LCD 用 Wire1 |