hal库/软件iic/mpu6050/dmp姿态解算/STM32F103C8T6

一、Cubemx配置

MPUSCL和MPUSDA连接mpu6050;

SCL和SDA连接OLED;

二、mpu6050相关代码

三、main.c

#include "stdio.h"
#include "IIC.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h"
 
//========================================================================
int main(void)
{
  /* USER CODE BEGIN 1 */
    float pitch,roll,yaw; 		    //欧拉角
    short aacx,aacy,aacz;			//加速度传感器原始数据
    short gyrox,gyroy,gyroz;		//陀螺仪原始数据
    float temp;					    //温度
  /* USER CODE END 1 */
 
  /* MCU Configuration--------------------------------------------------------*/
 
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
 
  /* USER CODE BEGIN Init */
 
  /* USER CODE END Init */
 
  /* Configure the system clock */
  SystemClock_Config();
 
  /* USER CODE BEGIN SysInit */
 
  /* USER CODE END SysInit */
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
    MPU_Init();			//MPU6050初始化
    mpu_dmp_init();		//dmp初始化
  /* USER CODE END 2 */
    printf("初始化成功!\r\n");
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
        HAL_Delay(500);
        while(mpu_dmp_get_data(&pitch, &roll, &yaw));	//必须要用while等待,才能读取成功
        MPU_Get_Accelerometer(&aacx,&aacy, &aacz);		//得到加速度传感器数据
        MPU_Get_Gyroscope(&gyrox, &gyroy, &gyroz);		//得到陀螺仪数据
        temp=MPU_Get_Temperature();						//得到温度信息
        printf("X:%.1f°  Y:%.1f°  Z:%.1f°  %.2f°C\r\n",roll,pitch,yaw,temp/100);//串口1输出采集信息
    /* USER CODE END WHILE */
 
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值