当前位置: 首页 > news >正文

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 :逐次读取加速度

http://www.dtcms.com/a/346354.html

相关文章:

  • 【链表 - LeetCode】24. 两两交换链表中的节点
  • 纯手撸一个RAG
  • 黄飞对话小熊电器流程与IT负责人:企业数字化进阶与AI实践如何落地?
  • QIcon::actualSize的作用和用法
  • 2025/8/22 xxl-job速通
  • 解决 微信开发者工具 :下载基础库版本 2.31.0 失败
  • RAG和微调是什么?两者的区别?什么场景使用RAG或微调?判断依据是什么?
  • LINUX网络编程--网络的发展与通信
  • AI赋能环保精准治理:AI水质监测溯源快、空气质量预测施策准,守护生态新效能
  • 关于 java+gradle的弹窗多选应用app
  • 【GPT入门】第54课 量化位数与存储大小的影响
  • Java 面试题训练助手 Web 版本
  • 网络通信——UDP协议。
  • Kubernetes 1.28 集群部署指南(基于 Containerd 容器运行时)
  • 笔记:二叉树构建方法
  • 从“配置化思维”到“前端效率革命”:xiangjsoncraft 如何用 JSON 简化页面开发?
  • 【源码】MES系统:从下达计划、执行反馈、异常预警到过程控制的一整套执行中枢。
  • FastTracker:实时准确的视觉跟踪
  • 一键部署openGauss6.0.2轻量版单节点
  • DPY-3010: connections to this database server version are not supported by p
  • LoRA内幕机制解析(53)
  • Design Compiler:层次模型(Block Abstraction)的简介
  • 什么是神鸟云?
  • 亚马逊老品怎么再次爆发流量?
  • 软件测试要怎么自学?
  • CVPR 2025 | 哈工大港大DeCLIP:解耦CLIP注意力实现开放词汇感知!
  • RK3588随笔:MIPI协议——D-PHY 物理层的自定义和校验
  • codeforces round 1043(div3) 补题
  • Finite State Machine(FSM) for the Development Mode
  • NVM-Windows 命令大全