STM32CubeIDE自平衡小车教程7.MPU6050传感器数据读取 | 您所在的位置:网站首页 › mpu6050调试 › STM32CubeIDE自平衡小车教程7.MPU6050传感器数据读取 |
MPU6050简介:
MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器。
那如何通过MPU6050传感器来获取数据呢?
具体步骤如下: 1.新建项目: 2.选择STM32F103C8T6芯片 3.对工程文件命名 4.在Connectivity中选择I2C1,在mode中选择I2C 5.根据原理图选择引脚其中MPU6050中的SCL和SDA应对应于C8T6主控模块上的PB8和PB9,故应在右侧引脚设置中单击PB9,PB8引脚,选择I2C1_SDA项。
6.点击生成代码,在MPU6050下新建一个User文件夹,在User文件夹下新建一个BSP文件夹,在BSP文件夹下添加Inc和Src文件夹,并在Inc和Src文件夹下添加bsp_mpu6050.c和bsp_mpu6050.h文件。(注意新建的文件夹需要设置路径) 新建的User文件夹,设置路径: (只有设置完路径后才能添加的上.c和.h文件) 再添加.c和,h文件 7.把以下代码加入bsp_mpu6050.c #include "main.h" extern I2C_HandleTypeDef hi2c1; IMU_SensorData_Raw_Structer IMU_SensorData_Raw; uint8_t BSP_MPU6050_ReadReg(uint8_t address) { uint8_t Value = 0; HAL_I2C_Mem_Read(&hi2c1,IMU_ADDRESS_READ,address,I2C_MEMADD_SIZE_8BIT,&Value,1,0x10); return Value; } void BSP_MPU6050_ReadMultiReg(uint8_t address,uint8_t length,uint8_t *data) { HAL_I2C_Mem_Read(&hi2c1,IMU_ADDRESS_READ,address,I2C_MEMADD_SIZE_8BIT,data,length,0x10); } void BSP_MPU6050_WriteReg(uint8_t address,uint8_t data) { HAL_I2C_Mem_Write(&hi2c1,IMU_ADDRESS_WRITE,address,I2C_MEMADD_SIZE_8BIT,&data,1,0x10); HAL_Delay(100); } void BSP_MPU6050_WriteMultiReg(uint8_t address,uint8_t length,uint8_t *data) { HAL_I2C_Mem_Write(&hi2c1,IMU_ADDRESS_WRITE,address,I2C_MEMADD_SIZE_8BIT,data,length,0x10); HAL_Delay(100); } uint8_t BSP_MPU6050_Read_WHOAMI(void) { return BSP_MPU6050_ReadReg(MPUREG_WHOAMI); } uint8_t BSP_MPU6050_Init(void) { uint8_t tries; for(tries = 0; tries |
CopyRight 2018-2019 实验室设备网 版权所有 |