STM32 硬件I2C读写MPU6050

本文代码基于 STM32 单片机,通过 I2C 总线驱动 MPU6050 六轴传感器(集成加速度计与陀螺仪),实现传感器初始化、ID 读取、原始数据采集,并借助 OLED 显示屏实时展示加速度(AccX、AccY、AccZ)与角速度(GyroX、GyroY、GyroZ)信息,为姿态检测、运动监测等应用提供基础数据支撑。

通过宏定义传感器内部寄存器地址,简化代码中寄存器操作,避免硬编码,提升可读性与可维护性。

写寄存器:

生成 I2C 起始信号,选择从机地址( MPU6050_ADDRESS )。

发送寄存器地址、写入数据,通过 MPU6050_WaitEvent 等待通信完成。

生成停止信号,完成写操作。

读寄存器:

先写操作发送寄存器地址(告知传感器要读取的数据位置)。

切换为读模式,再次生成起始信号,读取传感器返回数据。

禁用 ACK、生成停止信号,完成读操作。

初始化与数据采集:

使能 I2C 与 GPIO 时钟( RCC_APB1PeriphClockCmd ),配置 PB10/PB11 为 I2C 复用开漏模式。

初始化 I2C 外设(时钟、应答、地址模式等),设置传感器工作参数(如电源管理、采样率):

MPU6050_WriteReg(MPU6050_PWR_MGMT_1, 0x01); 唤醒传感器,选择时钟源

MPU6050_GetData :逐次读取加速度

相关推荐
夜月yeyue1 天前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
日更嵌入式的打工仔1 天前
实用:嵌入式执行时间测量常用方法
笔记·单片机
dreamczf1 天前
如何确定项目中的产品选型-物联网设备
单片机·物联网·嵌入式软件
Free丶Chan1 天前
关于KEIL下载提示UnKown CPU(STM32)
stm32·单片机·嵌入式硬件
boneStudent1 天前
Day35:DMA 原理与架构
stm32·单片机·嵌入式硬件
Vizio<1 天前
STM32HAL库开发笔记-GPIO输入
笔记·stm32·单片机·嵌入式硬件
硅农深芯1 天前
什么时候要用开漏输出(open drain output)?
单片机·嵌入式硬件·gpio·开漏输出·open drain
电子工程师-C511 天前
基于51单片机的家居环境监测系统
单片机·嵌入式硬件·51单片机
Big_潘大师1 天前
十轴IMU模块-AHRS角度姿态、加速度计、磁力计、气压陀螺仪传感器
stm32·单片机·嵌入式硬件·arduino·陀螺仪
ghomeway1 天前
keil使用虚拟的调试串口给调试助手发送数据
单片机·嵌入式硬件