当前位置:   article > 正文

STM32F103ZET6 编写 MPU6050代码 (HAL库、DMP代码)_zet6+mpu6050+lcd

zet6+mpu6050+lcd

STM32 HAL库移植 mpu6050 DMP库

一、生成 stm32 代码

需要的东西:

  • I2C
  • 串口

1、时钟设置
在这里插入图片描述
2、调试设置
在这里插入图片描述
3、I2C 设置
在这里插入图片描述
4、串口设置
在这里插入图片描述
5、生成代码
不截图了占空间

二、文件放置和配置

1、文件放置 (文件放在 Drivers 下面 )
在这里插入图片描述
2、头文件导入
在这里插入图片描述
3、添加文件组
在这里插入图片描述
3、设置 printf 输出函数
这里懒得粘贴图片了,设置 printf 如果不会就参考以下链接:
STM32 HAL库使用 printf 输出

4、导入头文件

#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h"
  • 1
  • 2
  • 3

代码位置:
在这里插入图片描述

5、定义接收变量

float pitch, roll, yaw;
  • 1

代码位置:
在这里插入图片描述

6、读取状态

/* USER CODE BEGIN 2 */
  printf("-- Mpu6050 Project Start -- \r\n");
	HAL_Delay(1000);
	/*
   *DMP��ʼ��
   */
	while (mpu_dmp_init())
  {
    HAL_Delay(200);
  }
	printf("Successfully initialized!\r\n");
	
	/*
   *iic��ȡ����ID
   */
	printf ("Ready to read the ID\r\n");
  uint8_t recv = 0x00;
  HAL_I2C_Mem_Read(&hi2c1, (0x68 << 1), 0x75, I2C_MEMADD_SIZE_8BIT, &recv, 1, 0xfff);
  if (recv == 0x68)
  {
    printf("mpu6050 ID Read: OK at 0x68\r\n");
  }
  else
  {
    printf("Err mpu id:0x%x\r\n", recv);
  }
  /* USER CODE END 2 */
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

代码位置:
在这里插入图片描述

7、读取数值

/* USER CODE END WHILE */
    while(mpu_dmp_get_data(&pitch, &roll, &yaw) != 0){}
	printf("data: %f,%f,%f\r\n", pitch, roll, yaw); 
	HAL_Delay(500);
/* USER CODE BEGIN 3 */
  • 1
  • 2
  • 3
  • 4
  • 5

代码位置:
在这里插入图片描述
8、代码串口输出效果
在这里插入图片描述

三、总结

代码参考以下链接修改而来,如需要源码可以去他的 网页下载(我使用的是 F4 源码修改的):
链接: STM32F4/STM32F1手把手移植MPU6050欧拉角(HAL库,带源码)

今天改了一天,终于把他弄出来了!累,顺便写个记录!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/454877
推荐阅读
相关标签
  

闽ICP备14008679号