# HAL MPU6050
MPU6050 driver based on STM32 HAL.
## Usage
- Define a global handler variable.
```c
MPU_HandleTypeDef hmpu;
MPU_DataTypeDef mpu_data;
```
- Define a init function in which set the parameters.
*assume you have already init a i2c instance elsewhere, and all the GPIO pins used are init elsewhere*
```c
void MPU_Init()
{
hmpu.hi2c = &hi2c2;
hmpu.AD0_GPIO = GPIOB;
hmpu.AD0_Pin = GPIO_PIN_0;
hmpu.AD0_State = 0;
hmpu.INT_GPIO = GPIOB;
hmpu.INT_Pin = GPIO_PIN_1;
hmpu.GyroFullScale = MPU_GYRO_FS_1000;
hmpu.AcceFullScale = MPU_ACCE_FS_16G;
hmpu.SamplingRate = 1000;
HAL_MPU6050_Init(&hmpu);
}
```
- Call init function when you need it.
```c
int main(void)
{
/* USER CODE BEGIN 1 */
/* 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_TIM4_Init();
MX_USART1_UART_Init();
MX_I2C2_Init();
/* USER CODE BEGIN 2 */
MPU_Init();
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
```
- To read gyroscope and accelermeter(is this word spelled correctly?)
```c
HAL_MPU6050_ReadGyro_Raw(&hmpu, &mpu_data);
HAL_MPU6050_ReadAcce_Raw(&hmpu, &mpu_data);
```
- To convert raw data to actual physical quantity
```c
HAL_MPU6050_Convert_Gyro(&hmpu, &mpu_data);
HAL_MPU6050_Convert_Acce(&hmpu, &mpu_data);
```
Note: some MCUs don't have a FPU(float process unit), the convertion may take **way too much** time.
没有合适的资源?快使用搜索试试~ 我知道了~
MPU6050基于STM32 HAL的驱动程序
共5个文件
h:2个
md:1个
license:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 91 浏览量
2024-06-16
19:41:40
上传
评论
收藏 17KB ZIP 举报
温馨提示
用法 定义全局处理程序变量。 MPU_HandleTypeDef hmpu; MPU_DataTypeDef mpu_data; 定义一个 init 函数,在其中设置参数。 假设您已经在其他地方初始化了一个 i2c 实例,并且所有使用的 GPIO 引脚都在其他地方初始化 void MPU_Init() { hmpu.hi2c = &hi2c2; hmpu.AD0_GPIO = GPIOB; hmpu.AD0_Pin = GPIO_PIN_0; hmpu.AD0_State = 0; hmpu.INT_GPIO = GPIOB; hmpu.INT_Pin = GPIO_PIN_1; hmpu.GyroFullScale = MPU_GYRO_FS_1000; hmpu.AcceFullScale = MPU_ACCE_FS_16G; hmpu.SamplingRate = 1000; HAL_MPU6050_Init(&hmpu); } 在需要时调用 init 函数。 int main(void) { /* USER CODE BE
资源推荐
资源详情
资源评论
收起资源包目录
hal_mpu6050-master.zip (5个子文件)
hal_mpu6050-master
LICENSE 35KB
hal_mpu6050.h 3KB
hal_mpu6050_reg_addr.h 1KB
README.md 2KB
hal_mpu6050.c 10KB
共 5 条
- 1
资源评论
hakesashou
- 粉丝: 6738
- 资源: 1676
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功