# raspi_pico_485_lcd **Repository Path**: zzkuang/raspi_pico_485_lcd ## Basic Information - **Project Name**: raspi_pico_485_lcd - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-31 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Raspberry Pi Pico 0.96" LCD 智能传感器项目指南 本项目基于 Waveshare Pico-LCD-0.96 扩展板与 Pico-2CH-RS485 扩展板,实现了一个**智能传感器显示与控制节点**。 ## 1. 核心功能:智能传感器模式 (Smart Sensor Mode) 设备处于**监听-显示-转发**的工作模式,充当现场监控终端。 ### 1.1 业务逻辑 1. **监听 (Channel 0)**: 持续监听 RS485 CH0 端口 (波特率 4800) 的特定协议数据。 2. **显示 (LCD)**: 根据接收到的指令类型(正常/危险/通风),实时更新屏幕显示内容(颜色、文字提示)。 3. **控制转发 (Channel 1)**: * 收到指令后,立即通过 RS485 CH1 (波特率 9600) 向下游设备发送两组控制命令。 * **双指令时序**: 每组发送包含两条指令,两条指令之间**间隔 1 秒**。 * **重复机制**: 该组指令会每隔 30 秒重复发送一次,共发送 3 次。 4. **抢占式响应 (Signal Interruption)**: * 如果在发送任务执行期间(如等待 30 秒重发时)收到了新的有效指令,**旧任务会被立即打断并丢弃**。 * 系统将立即切换到新指令的状态,重置发送计数器,并即刻执行新指令的发送流程。 ### 1.2 协议场景速览 | 场景类型 | 状态 | LCD 显示特征 | 转发行为 | | :--- | :--- | :--- | :--- | | **Type 01** | 安全 | 绿色文字,Safe to Enter | 发送 `40 31...` 及长指令 | | **Type 02** | 危险 | 红色警告,EVACUATE NOW | 发送 `40 30...` 及长指令 | | **Type 03** | 通风 | 黄色警告,Fan Started | 发送 `40 30...` 及长指令 | 详细协议定义请参考 `RS485_DEVELOPER_GUIDE.md`。 ## 2. 硬件资源分配 | 通道 | 功能 | Pico 引脚 | 说明 | | :--- | :--- | :--- | :--- | | **CH0** | **RX (数据输入)** | GP0 (TX), GP1 (RX), GP2 (EN) | 连接上游传感器 | | **CH1** | **TX (控制输出)** | GP4 (TX), GP5 (RX), GP3 (EN) | 连接下游控制器 | ## 3. 开发要点 (LCD 驱动) 在编写针对 0.96 寸 LCD 的程序时,必须注意以下三点,否则可能导致黑屏或显示异常: * **颜色模式 (Scale)**: * 必须调用 `Paint_SetScale(65)`。 * `65` 代表 RGB565 (16-bit) 模式。默认模式通常是单色,会导致彩色屏无法正常解析颜色数据。 * **背光控制 (PWM)**: * 硬件初始化后必须调用 `DEV_SET_PWM(100)`(或 0-100 之间的亮度值)。 * 背光通过 PWM 控制,默认可能为 0,导致屏幕看起来是黑的。 * **坐标系与旋转**: * 初始化建议:`LCD_0IN96_Init(HORIZONTAL)` 配合 `Paint_NewImage(..., ROTATE_0, ...)`。 * 分辨率为 `160x80`。 ## 4. 烧录与复位 (便捷开发) 本项目集成了一个非常实用的**“一键重启至烧录模式”**功能,无需反复插拔 USB 线或按主板上的 BOOTSEL 键。 * **操作**: 1. 使用串口终端连接 Pico (USB Serial)。 2. 发送字符 **`r`** 或 **`R`**。 3. Pico 会立即重启并挂载为虚拟 U 盘,等待拖入 `.uf2` 文件。 ## 5. 目录结构说明 * `main.c`: 核心业务逻辑(状态机、协议解析、定时任务)。 * `lib/Config`: 底层硬件配置 (SPI/GPIO/PWM)。 * `lib/LCD`: 0.96 寸 LCD 的初始化序列和底层传输。 * `lib/GUI`: 绘图 API。 * `RS485_DEVELOPER_GUIDE.md`: 详细的通信协议文档。 ## 6. 编译命令 ```bash cd build cmake .. make -j4 ```