# waveClock **Repository Path**: panzi/wave-clock ## Basic Information - **Project Name**: waveClock - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # waveClock 项目结构说明 ## 项目概述 **waveClock** 是一个基于 ESP32-S3 的智能时钟项目,使用 LVGL 图形库构建用户界面。 ## 目录结构 ``` waveClock/ ├── waveClock.ino # Arduino 主程序入口 ├── pin_config.h # 硬件引脚配置 ├── CMakeLists.txt # CMake 构建配置 ├── filelist.txt # 源文件列表 ├── src/ # 源码目录 │ ├── drivers/ # 硬件驱动模块 │ │ ├── I2C_Driver.cpp/h # I2C 总线驱动 │ │ ├── TCA9554PWR.cpp/h # GPIO 扩展芯片驱动 │ │ └── battery_manager.h # 电池管理模块 │ └── ui/ # LVGL UI 代码 │ ├── ui.c/h # UI 初始化和主函数 │ ├── ui_helpers.c/h # UI 辅助函数 │ ├── ui_events.h # UI 事件定义 │ ├── screens/ # UI 界面屏幕 │ │ ├── ui_Home.c/h # 主界面(时钟显示) │ │ ├── ui_setMenu.c/h # 设置菜单 │ │ ├── ui_setTime.c/h # 时间设置界面 │ │ ├── ui_setDate.c/h # 日期设置界面 │ │ └── ui_WiFi.c/h # WiFi 设置界面(预留) │ ├── fonts/ # 字体资源 │ │ ├── ui_font_date.c # 日期字体 │ │ ├── ui_font_day.c # 星期字体 │ │ ├── ui_font_digits.c # 数字字体 │ │ ├── ui_font_secs.c # 秒数字体 │ │ ├── ui_font_China16bpp1.c # 中文字体 │ │ └── ui_font_main.c # 主字体 │ └── images/ # 图片资源 │ ├── ui_img_logo_png.c # Logo 图片 │ ├── ui_img_set_png.c # 设置图标 │ └── ui_img_bright_png.c # 亮度图标 ├── UI_Prj/ # SquareLine Studio 项目文件 │ ├── SquareLine_Project.spj # 项目文件 │ ├── assets/ # SquareLine 资源文件 │ ├── UI/ # SquareLine 生成的 UI 代码 │ └── backup/ # SquareLine 备份文件 └── .vscode/ # VS Code 配置 ``` ## 模块说明 ### 主程序 (waveClock.ino) - 硬件初始化流程 - LVGL 显示驱动注册 - 触摸输入驱动注册 - 主循环逻辑 ### 硬件驱动 (src/drivers/) - **I2C_Driver**: I2C 总线通信驱动 - **TCA9554PWR**: TCA9554PWR GPIO 扩展芯片驱动 - **battery_manager**: 电池电压读取和电量计算 ### UI 模块 (src/ui/) - **UI 核心文件**: ui.c/h, ui_helpers.c/h, ui_events.h - **界面屏幕**: 各个功能界面的实现 - **字体资源**: LVGL 字体数据 - **图片资源**: LVGL 图片数据 ## 编译说明 ### Arduino IDE 1. 打开 `waveClock.ino` 2. 选择开发板: ESP32-S3 Dev Module 3. 选择正确的串口 4. 点击上传按钮 ### CMake (如使用 PlatformIO) ```bash cd D:\Development\esp32\waveClock mkdir build cd build cmake .. cmake --build . ``` ## 引脚配置 所有硬件引脚定义在 `pin_config.h` 中: - **显示屏 (QSPI)**: LCD_CS, LCD_SCLK, LCD_SDIO0-3, LCD_RESET - **触摸屏 (I2C)**: TP_INT, TP_RESET - **I2C 总线**: IIC_SDA, IIC_SCL - **电池管理**: BAT_ADC_PIN ## 开发注意事项 1. **UI 修改**: 使用 SquareLine Studio 打开 `UI_Prj/SquareLine_Project.spj` 修改界面,导出后更新 `src/ui/` 目录 2. **驱动修改**: 直接修改 `src/drivers/` 中的驱动代码 3. **引脚修改**: 修改 `pin_config.h` 中的引脚定义 4. **编译错误**: 确保所有必需库已安装(lvgl, Arduino_GFX_Library, SensorPCF85063, TouchDrvCSTXXX, HWCDC) ## 版本历史 - 2026-02-02: 重新整理项目结构,将源码分类到 `src/` 目录