# exlink_usolve **Repository Path**: dingguagua/exlink_usolve ## Basic Information - **Project Name**: exlink_usolve - **Description**: Exlink优化版 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-05-10 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Exlink 基于 `ESP32-S3`、`Arduino`、`LVGL` 和 `PlatformIO` 的多功能调试终端固件。当前版本已经把电源控制、PWM、舵机、UART、BLE、I2C、SPI、电压/电流监测、示波显示、频率计、设置页和 2048 小游戏整合到一套触屏 UI 里。 ## 项目来源 - 原始项目 / 原作者参考页面: [OSHWHub - gai-jin-xin Exlink 多功能调试器分离叠板](https://oshwhub.com/expert/gai-jin-xin-exlink-duo-gong-neng-diao-shi-qi-fen-li-die-ban) - 原项目开源仓库: [GitHub - physicsexpert/Exlink_Tool](https://github.com/physicsexpert/Exlink_Tool) - 本项目硬件链接: [OSHWHub - usolve/exlink_0603](https://oshwhub.com/usolve/exlink_0603) ## 功能概览 - `Pin Map`:查看面板排针分布和常用接口位置。 - `DC POWER`:控制可调电源输出,支持 `11V / 5V / 3V3` 预设和手动微调。 - `PWM OUT`:设置 PWM 频率和占空比并输出到排针。 - `Servo Ctrl`:用滑条、按键和预设角度控制舵机。 - `UART HELPER`:把 PC 的 USB 串口桥接到板载 `UART0`。 - `I2C`:提供 `Bridge` 和 `Listen` 两种模式。 - `SPI`:提供文本命令模式和 RAW 模式的 SPI 桥接。 - `Voltmeter`:显示实时电压、电流、功率和容量累计。 - `DSO`:简单波形显示和 `max / min / vpp` 统计。 - `BLE`:蓝牙串口页,支持 `UART / I2C Bridge / I2C Listen / SPI` 多种后端。 - `Frequency Counter`:读取输入频率并以 `Hz` 显示。 - `2048`:触屏滑动或按钮控制的 2048 小游戏。 - `Settings`:集中管理电源预设、蜂鸣器、日志输出和 `BLE+USB` 联动等持久化配置。 ## 硬件与软件 - 主控:`ESP32-S3` - 开发框架:`Arduino` - GUI:`LVGL` - 显示驱动:`TFT_eSPI` - 触摸驱动:`Arduino-CST816T-Library` - 电流/功率检测:`INA` - 工程管理:`PlatformIO` `platformio.ini` 当前配置: - `board = esp32-s3-devkitc-1` - `platform = espressif32 @ 6.5.0` - `framework = arduino` - `board_build.arduino.partitions = my.csv` - `board_upload.flash_size = 16MB` ## 快速开始 ### 1. 准备环境 推荐两种方式: - `VS Code + PlatformIO IDE` - 命令行安装 `PlatformIO Core` ### 2. 编译 ```powershell platformio run ``` ### 3. 烧录 ```powershell platformio run -t upload ``` ### 4. 串口查看 ```powershell platformio device monitor -b 115200 ``` 说明: - 启动早期日志固定优先输出到 `UART0`。 - `ui_init()` 完成后,运行期日志会恢复为设置页保存的通道与级别,默认是 `USBSerial + INFO`。 - 进入 `UART HELPER`、`I2C`、`SPI`、`BLE` 等桥接页面时,日志会临时静音;退出页面后自动恢复。 ## 交互方式 - 触屏点击主菜单进入功能页。 - 大多数页面支持“右滑返回”。 - 长按页面也可以返回主菜单。 - 实体按键: - `RIGHT`:切到下一个菜单项 - `LEFT`:切到上一个菜单项 - `PUSH`:短按进入 / 确认,长按返回 - 舵机页会复用左右键做角度微调。 ## 常用引脚速查 以下是对用户最常用的功能引脚,命名以 UI 页面标注为准: - 电源输出:`ROW1 pin1 = GND`,`ROW1 pin2 = OUT` - 电压监测:`ROW1 pin1 = GND`,`ROW1 pin2 = VIN` - PWM 输出:`ROW1 pin1 = GND`,`ROW1 pin6 = PWM` - 舵机输出:`ROW1 pin1 = GND`,`ROW1 pin6 = SER` - 频率计输入:`ROW1 pin1 = GND`,`ROW1 pin6 = IN` - 示波输入:`ROW1 pin1 = GND`,`ROW1 pin5 = IN` - UART / BLE 串口:`ROW1 pin1 = GND`,`ROW1 pin12 = RX`,`ROW1 pin13 = TX` - I2C:`ROW1 pin1 = GND`,`ROW1 pin7 = SCL`,`ROW1 pin8 = SDA` - SPI:`ROW1 pin1 = GND`,`ROW1 pin7 = CLK`,`ROW1 pin8 = CS`,`ROW1 pin12 = MISO`,`ROW1 pin13 = MOSI` 注意: - `I2C` 和 `SPI` 会复用一部分排针。 - `PWM`、`Servo`、`Frequency Counter` 也会复用 `ROW1 pin6`。 - 桥接类页面不要并行使用同一组物理引脚。 ## 参数持久化 固件会通过 `Preferences` 保存以下设置: - `11V / 5V / 3V3` 电源预设原始值 - 默认上电预设 - PWM 频率和占空比 - 舵机角度 - 蜂鸣器音量百分比 - 当前串口波特率 - 日志开关、输出通道和日志级别 - `BLE+USB` 联动开关 这些值会在重新上电后自动恢复。 ## 目录结构 ```text . |-- src/ 主程序、UI、事件和 2048 逻辑 |-- lib/ 本地依赖库 |-- include/ 头文件目录 |-- test/ 测试和实验代码 |-- platformio.ini PlatformIO 配置 |-- my.csv 分区表 |-- README.md 中文说明 |-- README.en.md English README `-- 操作文档.md 详细操作手册 ``` ## 相关文档 - 中文操作手册:[`操作文档.md`](./操作文档.md) - English README:[`README.en.md`](./README.en.md) ## 备注 - `BLE` 广播名称当前为 `Exlink`。 - 如果使用第三方串口工具,请关闭 `DTR` 和 `RTS`,避免误触发下载模式。