ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

移植正点原子mpu6050代码,总是MPU6050初始化失败解决

2021-09-11 22:03:28  阅读:463  来源: 互联网

标签:初始化 ShowString 正点 MPU6050 OLED mpu mpu6050 include oledBuf


移植正点原子mpu6050代码,总是MPU6050初始化失败解决

首先观察正点原子MPU6050代码,发现它在读取MPU6050数据的同时,还将数据通过串口发送给上位机进行调试,而我们移植mpu6050,只是单纯的想读取MUP6050的数据,不需要串口部分,问题就出在串口发送数据这。下面我将详细的讲解:(库函数)
我们在移植代码的时候,只移植MPU6050的代码,这样当然没什么问题,我也是这样移植的,移植之后再修改主函数,将串口及LCD显示的一些函数给删掉,删掉之后的代码我就用我的主函数作为示例,我使用的是oled进行显示,示例如下:

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "mpu6050.h" 
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h" 
#include "oled.h"

char oledBuf[20];
 	
 int main(void)
 {	 
	float pitch,roll,yaw; 		//欧拉角
	short aacx,aacy,aacz;		//加速度传感器原始数据
	short gyrox,gyroy,gyroz;	//陀螺仪原始数据	 
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	delay_init();	//延时初始化 
	LED_Init();		  			//初始化与LED连接的硬件接口
	KEY_Init();					//初始化按键 
	MPU_Init();					//初始化MPU6050
	while(mpu_dmp_init())
    {
    }
    OLED_Init();			//初始化OLED  
    OLED_Clear(); 
 	while(1)
	{	
		while(mpu_dmp_get_data(&pitch,&roll,&yaw)==0)
		{		
			MPU_Get_Accelerometer(&aacx,&aacy,&aacz);	//得到加速度传感器数据
			MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);	//得到陀螺仪数据
        }
		delay_ms(100);       
        sprintf(oledBuf,"%d",gyrox);
        OLED_ShowString(0,4,(u8*)oledBuf,16);
        sprintf(oledBuf,"%d",gyroy);
        OLED_ShowString(48,4,(u8*)oledBuf,16);
        sprintf(oledBuf,"%d",gyroz);//得到陀螺仪数据
        OLED_ShowString(96,4,(u8*)oledBuf,16);
        sprintf(oledBuf,"%.1lf",pitch);
        OLED_ShowString(0,6,(u8*)oledBuf,16);
        sprintf(oledBuf,"%.1lf",roll);
        OLED_ShowString(48,6,(u8*)oledBuf,16);
        sprintf(oledBuf,"%.1lf",yaw);
        OLED_ShowString(96,6,(u8*)oledBuf,16);//得到欧拉角数据			
	} 	
}

在修改主函数之后,将程序烧录进自己的板子,发现程序不执行,显示屏无显示。
经过筛查之后,发现mpu_dmp_init()这个函数中的mpu_init()这个函数初始化失败。
在mpu_init()这个函数中,将蓝颜色方框的代码屏蔽掉,问题自然就解决了。
在这里插入图片描述

标签:初始化,ShowString,正点,MPU6050,OLED,mpu,mpu6050,include,oledBuf
来源: https://blog.csdn.net/qq_53859658/article/details/120242425

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有