【STM32+HAL】GY25倾斜度角度模块

一、前言

有关MPU6050模块读取六轴传感器数值的详细内容,详见【STM32+HAL】姿态传感器陀螺仪MPU6050模块

二、所用工具

1、芯片:STM32F103C8T6

2、配置软件:CUBEMX

3、编译器:KEIL5

4、产品型号:GY-25

5、使用芯片:MPU6050

三、实现功能

串口方式读取并输出俯仰角,横滚角,航偏角数值

四、HAL库配置步骤

1、配置串口一、二,参数一致

2、中断配置

五、KEIL填写代码

1、初始化
#define RXBUFFERSIZE  256

uint8_t aRxBuffer;
int flag=0;
int16_t y=0,p=0,r=0;
double YAW=0,PITCH=0,ROLL=0;

uint8_t query1 = 0xA5;
uint8_t query2 = 0x51;
uint8_t query3 = 0x55;

	printf("Hello World!\r\n");
	HAL_Delay(500);

	HAL_UART_Transmit_IT(&huart2,&query1,1);
	HAL_UART_Transmit_IT(&huart2,&query3,1);
	HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);
2、串口回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    UNUSED(huart);
	if(huart==&huart2){
		static uint8_t k=0,rebuf[8]={0};
		HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);

		rebuf[k++] = aRxBuffer;				//读取接收到的数据
		if(!(rebuf[0]==0xAA))				//如果帧头错误,清缓存
		{
			k=0;
			rebuf[0]=0;
		}
		if(k==8)							//数据接收完毕
		{
			if(rebuf[7]==0x55)				//判断帧尾,正确则解析姿态角
			{
				 y=(rebuf[1]<<8|rebuf[2]);	//y,p,r为真实值的100倍
				 p=(rebuf[3]<<8|rebuf[4]);
				 r=(rebuf[5]<<8|rebuf[6]);
				 flag=1;
			}
			k=0;//清缓存
		}
		
	HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);
	}
}

3、main.c
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  if(flag==0){
		HAL_UART_Transmit_IT(&huart2,&query1,1);
		HAL_UART_Transmit_IT(&huart2,&query2,1);
		HAL_Delay(10);
	  }
	  else if(flag==1){
		flag=0;
		printf("Yaw=%.2f  Pitch=%.2f  ROLL=%.2f\r\n",(double)y/100.0f,(double)p/100.0f,(double)r/100.0f);
//		HAL_Delay(200);
	  }
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

六、注意事项

1、输出格式

2、命令字节

3、注意事项

七、源码提供

【STM32+HAL】GY25倾斜度角度模块源码

【STM32+HAL】GY25倾斜度角度模块源码(F407ZGT6)

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32 HAL库是针对STMicroelectronics的STM32系列微控制器提供的一套硬件抽象层(Hardware Abstraction Layer)库。它提供了一组API函数和驱动程序,用于简化STM32微控制器的配置和操作。 HAL库的目标是提供一种统一的编程接口,使得开发人员可以更方便地访问STM32微控制器的功能和外设。它屏蔽了底层硬件的差异性,使得开发人员可以更专注于应用逻辑的开发,而不用过于关注底层硬件细节。 HAL库的主要特点包括: 1. 硬件抽象:HAL库提供了一种抽象的接口,隐藏了底层硬件的细节,使得开发人员可以以相同的方式访问不同型号的STM32微控制器。 2. 配置灵活:HAL库提供了丰富的配置选项,可以通过宏定义和配置文件进行灵活配置,以满足不同应用需求。 3. 可移植性:HAL库是基于CMSIS(Cortex Microcontroller Software Interface Standard)标准开发的,因此具有较好的平台移植性,可以在不同的开发环境和编译器上使用。 4. 常用功能支持:HAL库提供了一系列常用功能的API函数,如GPIO操作、定时器控制、中断处理、串口通信等,方便开发人员快速完成常见的任务。 不过需要注意的是,HAL库虽然提供了较高层次的抽象,但在一些对性能要求较高的应用中,可能会需要更底层的编程方式来实现。因此,在选择使用HAL库时,需要根据应用需求进行权衡和选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值