# modbusRTOS **Repository Path**: 2209232891/modbus-rtos ## Basic Information - **Project Name**: modbusRTOS - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Copilot Instructions for STM32 Modbus RTOS Project ## 项目架构概览 - 本项目为基于 STM32F103 MCU 的 Modbus RTOS 工程,采用 FreeRTOS 实时操作系统。 - 主要代码分布在 `Core/`(主应用与硬件抽象层)、`Middlewares/Modbus/`(Modbus 协议实现)、`Drivers/`(外部库与硬件驱动)。 - `Middlewares/Modbus/` 目录下的 `modbus.c`、`modbus_uart.c`、`modbus_crc.c` 是协议栈核心,分别负责协议逻辑、串口通信、CRC 校验。 - `Core/Src/` 包含主入口 (`main.c`)、硬件初始化 (`gpio.c`, `dma.c` 等)、FreeRTOS 配置与任务 (`freertos.c`)。 ## 构建与调试流程 - 使用 CMake 构建,顶层 `CMakeLists.txt` 配置工程,支持 STM32CubeMX 生成的代码。 - 推荐使用 `cmake` 命令行或 IDE(如 VS Code + CMake Tools)进行构建。 - 典型构建命令: ```powershell cmake -S . -B build cmake --build build ``` - 调试建议:使用 STM32CubeIDE 或 OpenOCD + GDB,调试入口为 `main.c`。 - 固件烧录:通过 ST-Link 工具或 CubeIDE。 ## 关键约定与模式 - 所有硬件相关代码集中在 `Core/`,协议相关代码在 `Middlewares/Modbus/`,驱动和第三方库在 `Drivers/`。 - FreeRTOS 任务与中断处理分离,任务创建在 `freertos.c`,中断服务在 `stm32f1xx_it.c`。 - Modbus 通信通过 UART,相关配置在 `modbus_uart.c` 和 `usart.c`。 - CRC 校验统一调用 `modbus_crc.c` 实现。 - 配置文件如 `FreeRTOSConfig.h`、`stm32f1xx_hal_conf.h` 需与硬件和 CubeMX 保持同步。 ## 依赖与集成 - 依赖 STM32 HAL 库(`Drivers/STM32F1xx_HAL_Driver/`)和 FreeRTOS(`Third_Party/FreeRTOS/`)。 - CubeMX 生成的 `.ioc` 文件和相关 CMake 配置需保持一致。 - 外部库更新需注意 API 兼容性,优先参考 `Drivers/` 下的头文件。 ## 代码风格与命名 - 采用 STM32 HAL/LL 官方命名规范,结构体、函数、宏均以模块前缀命名(如 `MODBUS_`, `HAL_`)。 - 头文件与源文件一一对应,接口声明在 `Inc/`,实现在 `Src/`。 - 重要接口如 `Modbus_Init`, `Modbus_Poll` 在 `modbus.c` 中定义。 ## 示例:Modbus 任务集成 - 在 `freertos.c` 创建 Modbus 任务,任务函数调用 `Modbus_Poll()` 实现协议轮询。 - UART 接收中断在 `stm32f1xx_it.c`,数据处理回调在 `modbus_uart.c`。 ## 参考文件 - `Core/Inc/main.h`、`Core/Src/main.c`:主入口与系统初始化 - `Middlewares/Modbus/modbus.c`:Modbus 协议主逻辑 - `Core/Src/freertos.c`:RTOS 任务管理 - `Drivers/STM32F1xx_HAL_Driver/Inc/`:硬件抽象层头文件 --- 如有不清楚或遗漏的部分,请反馈以便进一步完善说明。