侧边栏壁纸
博主头像
火阳的小站

软件、硬件与结构的工作笔记

  • 累计撰写 100 篇文章
  • 累计创建 169 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

从 ESP32-C3 到屏幕:酒精检测仪的启动链路

火阳
2024-10-08 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

资料中的启动顺序是:挂载 SPIFFS 并加载配置,初始化 UART 协议层,读取时间,初始化语言与 LCD/LVGL,启动背光,进入 lv_timer_handler() 主循环。这个顺序把“设备能显示”与“设备能通信”拆开,调试时可以先缩小故障面。ESP-IDF 的 ESP32-C3 入门文档也把配置、构建、烧录和监视作为连续工作流;项目实际版本和组件锁定仍以仓库文件为准。

启动顺序为什么要固定

阶段 资料中对应模块 现场检查
配置 Config/config.c SPIFFS 挂载、JSON 是否能读回、历史计数是否一致
通信 L010Board UART 初始化、目标引脚切换、帧超时与重试
时间 GetTimeNow、RTC API 时间是否可读,日志时间是否连续
显示 LCD_Init、ST7789、LVGL SPI 面板、刷新回调、字体资源
交互 ui_initkey_init、BLE 页面状态、按键事件、GATT 服务

main.c 的启动入口先准备配置和硬件,再进入 UI。主板和酒精模组通过 L010Board 层通信,UI 层不直接拼接 UART 帧;BLE 则在主页初始化时提供 JSON 命令。LVGL 负责对象、事件和刷新调度,显示驱动仍由 ST7789 面板层完成。相关接口可分别对照 Espressif 的 ESP32-C3 Programming GuideESP-IDF LCD APILVGL 8.3 文档

出现问题时的排查顺序

“页面正常但读数不变”时,先看模组目标切换、帧接收超时和 l010_get_alcohol_adc 的返回,再看 UI 显示。若启动后历史数量异常,检查 SPIFFS 挂载、JSON 解析和 /spiffs/history.log 的追加记录;清空历史和读取历史都要同时核对配置中的计数。若 BLE 能连接但命令无响应,再按 Ble_Init、服务注册、命令分发和错误返回逐层记录。

校准接口与显示流程分开,避免把一次校准写入误认为实时测量结果。调试日志应保留固件版本、阶段、错误码和复现步骤,而不是只截一张最终界面图。

本文不推断传感器精度,实际读数仍需按传感器批次、环境和校准记录解释。项目中的组件版本、引脚和协议字段以本地源码与锁定文件为准。

0

评论区