当前位置:   article > 正文

STM32F4/STM32F1手把手移植MPU6050欧拉角(HAL库,带源码)_移植dmp

移植dmp

目录

一、CubeMAX软件设置

1.打开CubeMAX,新建工程

 2.设置时钟,DEBUG调试

3.配置只发送串口

 4.配置时钟

 5.设置文件名,编译器,生成独立文件,生成

 二、移植DMP文件

1.视频

2.源码

2.代码部分


一、CubeMAX软件设置
1.打开CubeMAX,新建工程

 2.设置时钟,DEBUG调试

 3.设置硬件IIC

3.配置只发送串口

 4.配置时钟

 5.设置文件名,编译器,生成独立文件,生成

 

 二、移植DMP文件
1.视频

欧拉角配置

2.源码

STM32F1源码  提取码:impu

 STM32F4源码 提取码:impu

2.代码部分
  1. #include "main.h"
  2. #include "i2c.h"
  3. #include "usart.h"
  4. #include "gpio.h"
  5. /*说明
  6. 1.将这个MPU6050的文件夹复制到刚才创建的工程里
  7. 2.添加路径和文件夹,选择下载器,将.C文件添加到工程里
  8. 3.添加头文件,就是刚在添加的那几个文件
  9. 4.一直复制即可,后续将main函数放入csnd中
  10. 5.串口重定向,添加stdio.h再将下面代码复制到usart.c的最下面即可
  11. int fputc(int ch, FILE *f)
  12. {
  13. HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  14. return ch;
  15. }
  16. int fgetc(FILE *f)
  17. {
  18. uint8_t ch = 0;
  19. HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
  20. return ch;
  21. }
  22. 6.这里就ok了
  23. */
  24. /* Private includes ----------------------------------------------------------*/
  25. /* USER CODE BEGIN Includes */
  26. #include "mpu6050.h"
  27. #include "inv_mpu.h"
  28. #include "inv_mpu_dmp_motion_driver.h"
  29. /* USER CODE END Includes */
  30. /* Private typedef -----------------------------------------------------------*/
  31. /* USER CODE BEGIN PTD */
  32. /* USER CODE END PTD */
  33. /* Private define ------------------------------------------------------------*/
  34. /* USER CODE BEGIN PD */
  35. /* USER CODE END PD */
  36. /* Private macro -------------------------------------------------------------*/
  37. /* USER CODE BEGIN PM */
  38. /* USER CODE END PM */
  39. /* Private variables ---------------------------------------------------------*/
  40. /* USER CODE BEGIN PV */
  41. float pitch, roll, yaw;
  42. /* USER CODE END PV */
  43. /* Private function prototypes -----------------------------------------------*/
  44. void SystemClock_Config(void);
  45. /* USER CODE BEGIN PFP */
  46. /* USER CODE END PFP */
  47. /* Private user code ---------------------------------------------------------*/
  48. /* USER CODE BEGIN 0 */
  49. /* USER CODE END 0 */
  50. /**
  51. * @brief The application entry point.
  52. * @retval int
  53. */
  54. int main(void)
  55. {
  56. /* USER CODE BEGIN 1 */
  57. /* USER CODE END 1 */
  58. /* MCU Configuration--------------------------------------------------------*/
  59. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  60. HAL_Init();
  61. /* USER CODE BEGIN Init */
  62. /* USER CODE END Init */
  63. /* Configure the system clock */
  64. SystemClock_Config();
  65. /* USER CODE BEGIN SysInit */
  66. /* USER CODE END SysInit */
  67. /* Initialize all configured peripherals */
  68. MX_GPIO_Init();
  69. MX_I2C1_Init();
  70. MX_USART1_UART_Init();
  71. /* USER CODE BEGIN 2 */
  72. /*测试一下串口,这里我们用的是硬件IIC软甲IIC没有用到,就不需要添加软件IIC的代码了,还得设置这里*/
  73. /*语句放在串口初始化下面*/
  74. /*这里需要将串口重定向一下*/
  75. printf("-- Mpu6050 Project Start -- \r\n");
  76. HAL_Delay(1000);
  77. /*
  78. *DMP初始化,
  79. */
  80. while (mpu_dmp_init())
  81. {
  82. HAL_Delay(200);
  83. }
  84. printf("Successfully initialized!\r\n");
  85. /*
  86. *iic读取器件ID ,测试IIC能否使用,测试一下
  87. */
  88. printf ("Ready to read the ID\r\n");
  89. uint8_t recv = 0x00;
  90. HAL_I2C_Mem_Read(&hi2c1, (0x68 << 1), 0x75, I2C_MEMADD_SIZE_8BIT, &recv, 1, 0xfff);
  91. if (recv == 0x68)
  92. {
  93. printf("mpu6050 ID Read: OK at 0x68\r\n"); //成功
  94. }
  95. else
  96. {
  97. printf("Err mpu id:0x%x\r\n", recv); //失败
  98. }
  99. /* USER CODE END 2 */
  100. /* Infinite loop */
  101. /* USER CODE BEGIN WHILE */
  102. while (1)
  103. {
  104. /* USER CODE END WHILE */
  105. while(mpu_dmp_get_data(&pitch, &roll, &yaw) != 0); //获取欧拉角的参数
  106. printf("%f,%f,%f\r\n", pitch, roll, yaw); //打印到串口上
  107. HAL_Delay(500);
  108. /* USER CODE BEGIN 3 */
  109. }
  110. /* USER CODE END 3 */
  111. }

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

闽ICP备14008679号