# Control **Repository Path**: ledgejin/control ## Basic Information - **Project Name**: Control - **Description**: 使用STM32读取MPU9250数据并且对数据进行融合处理,可以实现对角度的精确读取。 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2021-12-16 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 控制项目 [NO FILE CONTENT] # 控制项目 ## 项目简介 这是一个基于STM32F103C8微控制器的嵌入式控制项目,主要用于传感器数据的采集与处理。项目集成了MPU9250陀螺仪、加速度计和磁力计,利用DMP(Digital Motion Processor)进行运动数据处理,并通过RTT(Real-Time Terminal)实现调试输出。 ## 主要功能 - **传感器数据采集**:通过MPU9250获取三轴陀螺仪、加速度计和磁力计数据 - **运动数据处理**:使用DMP进行四元数计算,提供姿态估计 - **实时调试输出**:通过SEGGER RTT实现高效的实时调试信息输出 - **中断处理**:支持外部中断和定时器中断,用于实时响应外部事件 ## 硬件支持 - **微控制器**:STM32F103C8 - **传感器**:MPU9250(集成陀螺仪、加速度计和磁力计) - **通信接口**:I2C用于与传感器通信,RTT用于调试输出 ## 软件架构 ``` ├── main.c # 主程序入口 ├── HardWare/ │ ├── Calcuate/ # 数据计算与姿态融合(AHRSupdate算法) │ ├── DMP/ # DMP运动处理库 │ ├── EXTI/ # 外部中断处理 │ ├── IIC/ # I2C通信驱动 │ ├── LED/ # LED指示灯驱动 │ ├── MPU9250/ # MPU9250传感器驱动 │ ├── RTT/ # SEGGER RTT调试输出 │ ├── delay/ # 延时函数 │ ├── sys/ # 系统核心函数 │ └── usart/ # 串口通信驱动 └── RTE/ # STM32运行时环境 ``` ## 使用说明 ### 1. 硬件连接 确保MPU9250正确连接到STM32F103C8的I2C接口: - SCL → I2C1_SCL (PB6) - SDA → I2C1_SDA (PB7) - VCC → 3.3V - GND → GND ### 2. 编译与烧录 使用Keil uVision或其他支持STM32的IDE编译项目: 1. 打开`control.uvprojx`工程文件 2. 选择目标芯片STM32F103C8 3. 编译项目生成固件 4. 使用J-Link或其他编程器将固件烧录到微控制器 ### 3. 调试 通过RTT查看调试信息: 1. 使用J-Link连接目标板 2. 打开SEGGER RTT Viewer 3. 选择对应的调试通道查看实时输出 ## 依赖库 - **STM32F10x标准外设库**:提供STM32F1系列微控制器的底层驱动 - **SEGGER RTT**:用于实时调试输出 - **DMP运动处理库**:用于处理MPU9250的运动数据 ## 许可证 本项目使用MIT许可证,允许在商业应用中使用,但需保留版权声明和许可声明。 ## 版本历史 - **v1.0**:初始版本,包含基本的传感器数据采集和RTT调试功能 ## 致谢 感谢InvenSense提供的DMP运动处理库和SEGGER提供的RTT调试工具。