# esp32-p4-dev **Repository Path**: microchip-valley/esp32-p4-dev ## Basic Information - **Project Name**: esp32-p4-dev - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-31 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32-P4 HMI + Modbus RTU 工业控制系统 基于 ESP32-P4 的工业 HMI 人机界面系统,集成 LVGL v9 触摸屏 UI 和 Modbus RTU 通信,用于超声波工业设备控制。 ## 硬件平台 - **MCU**: ESP32-P4 (RISC-V 双核, 360MHz) - **显示**: MIPI DSI 1024x600 LCD (JD9165 驱动), RGB565 - **触摸**: I2C 电容触摸屏 (GT911) - **通信**: RS485 (UART1, 9600bps, 8N1) ### 设备接线 | 设备 | Modbus 地址 | 功能 | 引脚 | |------|------------|------|------| | 16路继电器控制器 | 1 | R01-R06 聚能, R07-R10 分散, R11 搅拌机, R12 循环泵 | TX:GPIO26, RX:GPIO27 | | JK0201P PT100 温度模块 | 2 | 温度采集 | 并联 RS485 总线 | ## 功能 ### HMI 界面 (三页签) - **温度曲线** — 60 秒温度历史曲线图表 + 实时温度显示 - **参数设置** — 聚能/分散时间参数配置,数字键盘输入 - **设备控制** — 聚能(6路)/分散(4路)设备选择,搅拌机/循环泵,启动/停止/复位,实时温度 ### Modbus RTU 通信 - 批量线圈写入 (FC 0x0F),单次控制最多 16 路继电器 - PT100 温度自动轮询 (1s 周期) - 独立 FreeRTOS 任务处理,不阻塞 UI - 智能重试:连续失败 10 次后自动停止读取 ## 编译和运行 需要 ESP-IDF v5.5.x 环境: ```bash idf.py build flash monitor ``` Flash 端口 COM23 (UART 模式)。 ## 项目结构 ``` main/ main.c # 主程序 (UI + 控制逻辑 + Modbus 任务) chinese_test.c # 自定义中文字体位图数据 (通过 #include 引入) components/ modbus/ # Modbus RTU 主站驱动 (raw UART) espressif__esp32_p4_function_ev_board/ # BSP LCD/触摸驱动 bsp_extra/ # BSP 扩展 sdkconfig.defaults # 关键配置 (PSRAM 200MHz, LCD 类型等) ``` ## 关键配置说明 - **PSRAM 必须 200MHz** — 20MHz 会导致 LCD underrun - **显示缓冲** — 1024x600 全帧缓冲,双缓冲,使用 PSRAM - **Modbus 校验** — 必须无校验 (`UART_PARITY_DISABLE`),PT100 模块要求 - **字体** — UI 全部使用 `chinese_test.c` 自定义中文字体,LVGL 默认字体为 Montserrat 14 ## 待完善 - [ ] 温度曲线图表完善 - [ ] 聚能/分散自动控制逻辑 - [ ] 参数设置下发生效 - [ ] 循环模式自动切换