# IrOnUart **Repository Path**: RT-Thread-Mirror/IrOnUart ## Basic Information - **Project Name**: IrOnUart - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-26 - **Last Updated**: 2026-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # irOnUart 基于 RT-Thread 操作系统的红外信号收发驱动程序,通过 UART 接口接收红外信号并解析。 ## 功能特性 - **UART 红外接收**:通过 UART 接口接收红外信号 - **PWM 红外发送**:使用 PWM 模块发送红外信号 - **多线程处理**:独立线程处理数据接收和解析 - **信号解析**:内置红外数据解析功能(基于串口空闲中断 自行拟定私有协议) - **超时检测**:空闲超时自动完成数据帧接收 ## 技术架构 ### 核心模块 | 模块 | 说明 | |------|------| | `infraredOnUart.c` | 主程序,包含 UART 接收、PWM 发送、数据解析 | | `pwmSupport.c` | PWM 设备驱动支持(注:仅供测试 项目可无视 已集成到infraredOnUart.c) | 串口不定长接收框架 完全复用https://packages.rt-thread.org/detail.html?package=bt24s ### 主要组件 - **serial**: UART 设备句柄 - **pwmDev**: PWM 设备句柄 - **rxSem**: 接收信号量 - **endSem**: 结束信号量 - **idleCaptureTimer**: 空闲捕获定时器 ## 使用说明 ### 硬件要求 - 支持 RT-Thread 的嵌入式开发板 - UART 接口 - PWM 输出通道 ### 软件依赖 - RT-Thread 操作系统 - PWM 设备驱动 - UART 设备驱动 ### 配置步骤 1. 在 RT-Thread 的 `Kconfig` 中启用相关配置 2. 配置 UART 名称 3. 配置 PWM 名称和通道 4. 编译并下载到开发板 ### API 初始化 ```c // 初始化红外硬件 int ir_hw_init(void); // 发送红外信号示例 static void demo_ir_send(void); ``` MSH_CMD_EXPORT(ir_hw_init, ir_hw_init); MSH_CMD_EXPORT(demo_ir_send, demo_ir_send); 测试使用2块板子 一个TX 一个RX ## 文件说明 ``` infraredOnUart.c - 主程序,包含所有核心功能 pwmSupport.c - PWM 驱动支持示例 SConscript - SBuild 构建脚本 Kconfig - 内核配置 LICENSE - MIT 许可证 ``` ## 原理说明 1. 串口使用正常串口即可 波特率宜小 推荐2400/4800 2. PWM是载波 把串口数据走红外发出去 3. 软件角度看 程序对PWM的控制 类似RS485的控制脚 4. 典型硬件原理图如下 ![1771910257472](images/README/1771910257472.png) ## 额外说明 本项目没有体现出PIN的初始化 - STM32等可能会自动配置PIN脚用作PWM或者UART - 我实际测试使用新唐M2L31SIDAE开发板 需要手动配置PIN的 - 比如 \board\NuPinConfig\nutool_pincfg.c 加入一句话 配置PIN用于PWM的CHAN4 ``` /* Set PB7 multi-function pins for PWM1 Channel 4 */ SYS->GPB_MFP1 = (SYS->GPB_MFP1 & (~SYS_GPB_MFP1_PB7MFP_Msk)) | SYS_GPB_MFP1_PB7MFP_PWM1_CH4; ``` ## 许可证 本项目基于 MIT 许可证开源,可自由用于商业和非商业项目,修改后需保留原版权声明。 ## 联系方式 维护:龚金华 单位: 上海威派格智慧水务股份有限公司 邮箱:782730309@qq.com