日期:2026-07-15
时间线
| 日期 | 里程碑 |
|---|---|
| 2026-06-01 | SSD1683 初始化序列完成 (16 步),PSR RES=01 修复 |
| 2026-06-07 | 局部刷新修复(文字重叠)+ 残影优化 |
| 2026-06-09 | 天气显示修复 + 字体 bug 修复 + 快刷实现 |
关键踩坑
1. 文字重叠(6月7日)
现象:新闻局部刷新时文字叠在一起
原因:ssd1683_partial_update() 只写新内容到 0x24,旧内容没写 0x26
修复:增加 old_img 参数,先写 0x26 再写 0x24
效果:全刷 2.9s → 局刷 440ms
2. 字体 '9' 显示为 '0'(6月9日)
现象:日期"6月9日"显示"6月00日",温度"29度"→"20度"
原因:gui_paint.c 里 font8x16[10](字符'9')的位图和 font8x16[1]('0')完全相同
修复:手动重绘 '9' 的位图
3. 天气温度冲突(6月9日)
现象:第1行"29°" 但第2行"23-20度",不一致
原因:DeepSeek 返回的 today_high/low 覆盖了 Open-Meteo 的真实值
修复:parse_weather() save/restore 机制保护 Open-Meteo 温度
4. 天气图标迭代(6月9日)
- 自绘 SVG → 线条交叉 ❌
- svgpathtools 转换 → 重影 ❌
- 1px 手绘 → 没重影但线条交叉 ❌
- OpenWeatherMap PNG 转 1-bit → 填充风,辨识度高 ✅
5. 残影积累
修复1 (6月7日):GHOST_CLEAN_INTERVAL 8→3(每3次局刷做全刷)
修复2 (6月9日):快刷后 3→6(快刷残影比局刷少,放宽)
6. 快刷实现(6月9日)
参考:inksight 项目 + Waveshare Init_Fast
技巧:温度寄存器写 0x6E 让内部 LUT 加速
效果:全刷 2.9s → 快刷 1.7s
答辩与竞赛问答
Q: 为什么 ESP32 不是 STM32?
A: ESP32 内置 WiFi+BLE 双模,休眠功耗 ~10μA。STM32 需外挂模块。ESP32 模组 ~15 元 vs 树莓派 ~200 元。
Q: BLE 256 字节 MTU 怎么解决?
A: dirty flag 机制——BLE 只更新内存变量,主循环统一写 NVS。图片分块 340 字节→base64→JSON 包装 ~495 字节。
Q: Flash/RAM 够吗?
A: 520KB SRAM。帧缓冲 15KB,BLE ~50KB,WiFi ~50KB。NVS 24KB + SPIFFS 2MB。新闻缓存用 NVS 不占 RAM。
关键词
#踩坑 #局刷 #字体bug #天气图标 #快刷 #BLE_MTU
相关
所属索引 待补充 · 主页 待补充
归档索引 待补充
来源与关联索引
- 来源
- 个人知识库
- 原笔记
- 05-历史归档/旧项目/墨水屏原始记录/开发历史与排障.md
- 资料性质
- 历史记录。原文的版本、来源与验证边界继续保留。