# uart001双串口互传 **Repository Path**: zhiOS/uart001 ## Basic Information - **Project Name**: uart001双串口互传 - **Description**: 实现两个串口数据互传,支持数据透传; - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-30 - **Last Updated**: 2026-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UART001 - Modbus UART Implementation for STM32F1xx 本项目是基于STM32F1xx微控制器的Modbus通信协议实现,通过UART接口实现双串口互传,即串口1收到数据通过串口2发送,串口2接收到数据通过串口1发送。 ### 可作为二次开发模块模板 ### 实现uart串口数据级联透传 接收过程:数据第1字节做模块路由功能,100xxxxx低5位指示模块地址,每次路由减1,直到地址为1000 0001时终止; 回传过程:数据第1字节固定位10100001做返回标志,所有MCU接收到透传数据,直接转发! 注:接到到第1字节,MCU单片机的PC13脚输出低电平驱动LED闪烁; ![双串口互传](%E5%8F%8C%E4%B8%B2%E5%8F%A3%E4%BA%92%E4%BC%A0.png) ## 功能特性 - **双UART接口**:支持USART1和USART2双串口通信 - **Modbus协议**:完整的Modbus协议实现 - **精确延时**:微秒级(Delay_us)和毫秒级(Delay_ms)延时函数 - **DMA支持**:支持UART DMA传输,提高通信效率 - **中断处理**:完善的中断回调处理机制 ## 硬件要求 - STM32F1xx系列微控制器 - 两个UART接口 (USART1, USART2) - 一个定时器 (TIM3) - 必要的GPIO引脚配置 ## 软件架构 ### 核心组件 | 文件 | 功能描述 | |------|---------| | `Core/Src/main.c` | 主程序入口,包含系统初始化和主循环 | | `Core/Src/stm32f1xx_it.c` | 中断处理函数 | | `Core/Src/stm32f1xx_hal_msp.c` | HAL库底层驱动初始化 | | `Core/Src/system_stm32f1xx.c` | 系统时钟配置 | ### 主要功能函数 - `SystemClock_Config()` - 系统时钟配置 - `MX_USART1_UART_Init()` - USART1初始化 - `MX_USART2_UART_Init()` - USART2初始化 - `MX_TIM3_Init()` - 定时器3初始化 - `MX_GPIO_Init()` - GPIO初始化 - `Delay_us()` - 微秒延时 - `Delay_ms()` - 毫秒延时 ## 使用说明 ### 编译与烧录 1. 使用STM32CubeIDE或Keil MDK打开项目 2. 配置编译工具链 3. 编译并烧录到目标硬件 ![stlink烧录调试](stlink%E7%83%A7%E5%BD%95%E8%B0%83%E8%AF%95.png) ### 串口配置 默认串口参数: - 波特率:可配置 - 数据位:8位 - 停止位:1位 - 校验位:无 ### Modbus通信 通过`UartModbusStruct`结构体进行Modbus通信管理,使用`ModbusCommand`变量发送和接收Modbus命令帧。 ## 依赖项 - STM32CubeF1固件库 - CMSIS核心库 - HAL驱动库 ## 目录结构 ``` ├── Core/ │ ├── Inc/ # 头文件目录 │ │ ├── main.h │ │ ├── stm32f1xx_hal_conf.h │ │ └── stm32f1xx_it.h │ └── Src/ # 源文件目录 │ ├── main.c │ ├── stm32f1xx_hal_msp.c │ ├── stm32f1xx_it.c │ └── system_stm32f1xx.c ├── Drivers/ # 驱动库 │ ├── CMSIS/ # CMSIS核心库 │ └── STM32F1xx_HAL_Driver/ # HAL驱动 └── .gitignore # Git忽略配置 ``` ## License 本项目遵循开源协议,具体许可证信息请参考项目源码。