加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

嵌入式外设集-三轴陀螺仪模块(MPU6050)驱动代码编写

06/26 09:23
1249
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
    • 一、模块介绍
    • 二、代码展示
    • 三、参考
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

一、模块介绍

MPU6050是一款集成了加速度传感器陀螺仪的6轴运动传感器。它可以用于测量物体在三维空间中的加速度和旋转速度,并计算出物体的姿态角度。该传感器具有高精度和低功耗的特性,因此也被广泛应用于机器人、飞行器、智能穿戴设备等领域。在使用MPU6050时,用户需要使用I2C接口与其通信,并进行相应的配置和校准,以保证准确的数据输出。​​​​​​​

关注微信公众号--星之援工作室 发送关键字(MPU6050)

➡️➡️

452c0cf75b1d4e4895194df8a5022c34.png (865×328)

使用的注意事项

1.供电选择选择的5V供电更稳定

2.使用的模拟IIC通信

3.需要主要MUP6050受到的环境因素改变较多,使用的时候尽量固定水平位面

4.完整代码资料中有,可自行移植

二、代码展示

main

/****************************************
1. MPU6050
PB9:INT   
PB7:IIC_SCL   
PB8:IIC_SDA
2. IIC显示屏
PA1:IIC_SCL_OLED      
PA2:IIC_SDA_OLED
****************************************/
#include "oled.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h" 
#include "uart.h"
#include "stdio.h"

MPU6050_Typedef mup6050_init;				  // 设备状态

int main(void)
{	 
	//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

	delay_init();				       //延时初始化
	OLED_Init();
	OLED_ColorTurn(0);         //0正常显示,1 反色显示
  OLED_DisplayTurn(0);       //0正常显示 1 屏幕翻转显示
	MPU_Init();					       //初始化MPU6050
	USART1_Init();
	 
	OLED_ShowString(15,0,"Waiting",24,1);
	OLED_ShowString(0,28,"Initialise",24,1);
	OLED_Refresh();
	
	while(mpu_dmp_init())
 	{
		OLED_Clear();
		OLED_Refresh();
	}
	OLED_Clear();
	OLED_Refresh();
	OLED_ShowString(0,0,"PITCH:",16,1);
	OLED_ShowString(0,15,"ROLL:",16,1);
	OLED_ShowString(0,31,"YAW:",16,1);
	OLED_ShowString(0,47,"TEMP:",16,1);
	OLED_Refresh();
 	while(1)
	{
		if(mpu_dmp_get_data(&mup6050_init.pitch,&mup6050_init.roll,&mup6050_init.yaw)==0)
		{
			mup6050_init.temp=MPU_Get_Temperature();							  //得到温度值
			MPU_Get_Accelerometer(&mup6050_init.aacx,&mup6050_init.aacy,&mup6050_init.aacz);	//得到加速度传感器数据
			MPU_Get_Gyroscope(&mup6050_init.gyrox,&mup6050_init.gyroy,&mup6050_init.gyroz);	//得到陀螺仪数据
			
			/*
			printf("Pitch:  %frn",(float)pitch);
			printf("Roll:  %frn",(float)roll);
			printf("yaw:  %frn",(float)yaw);
			printf("temp:  %frn",(float)temp);
			printf(" rn");
			*/
			OLED_ShowFloat(50, 0,mup6050_init.pitch,1,16,1);
			OLED_ShowFloat(50,15,mup6050_init.roll,5,16,1);
			OLED_ShowFloat(50,31,mup6050_init.yaw,5,16,1);
			OLED_ShowFloat(50,47,(float)mup6050_init.temp/100,5,16,1);
			OLED_Refresh();
		}
	} 	
}

三、参考

正点原子STM32学习笔记——MPU6050介绍icon-default.png?t=N7T8https://blog.csdn.net/wlswls1711/article/details/102727250?ops_request_misc=&request_id=&biz_id=102&utm_term=mpu6050%E5%A7%BF%E6%80%81%E8%A7%A3%E7%AE%97stm32&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-102727250.nonecase&spm=1018.2226.3001.4187


完整代码请关注公众号进行获取和咨询


联系方式 微信号:13648103287

  • 联系方式.docx

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
LM60CIM3/NOPB 1 National Semiconductor Corporation Analog Temperature Sensor, ANALOG TEMP SENSOR-VOLTAGE, 4Cel, RECTANGULAR, SURFACE MOUNT, PLASTIC, SOT-23, 3 PIN
$1.25 查看
MPXM2102AS 1 Motorola Mobility LLC ABSOLUTE, PEIZORESISTIVE PRESSURE SENSOR, 0-14.5Psi, 1%, 0-40mV, RECTANGULAR, SURFACE MOUNT, PORTED, MPAK-4/5
$12.97 查看
DS600U+T&R 1 Maxim Integrated Products ANALOG TEMP SENSOR-VOLTAGE, 0-0.4V, 0.75Cel, SQUARE, SURFACE MOUNT, MO-187, MICRO SOP-8
$4.37 查看

相关推荐

电子产业图谱

方案定制,程序设计方案、单片机程序设计与讲解、APP定制开发。本公众号致力于向读者传递关于程序设计和开发的相关知识,并分享一些关于软件开发的最佳实践。如果您有什么问题或建议,请随时联系我们。我们将竭诚为您服务