STM32系列(HAL库)

您所在的位置:网站首页 故宫液酒52度500ml多少钱一瓶 STM32系列(HAL库)

STM32系列(HAL库)

#STM32系列(HAL库)| 来源: 网络整理| 查看: 265

1.软件准备

(1)编程平台:Keil5

(2)CubeMX

(3)XCOM(串口调试助手)

(4)文件资料包:点击跳转下载

2.硬件准备

(1)一个捡来的MPU6050

(2)F1的板子,本例使用经典F103C8T6

(3)ST-link 下载器

(4)USB-TTL模块

(5)杜邦线若干

3.模块资料 (1)模块简介:

        MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP:Digital MotionProcessor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术         MPU-6000的角速度全格感测范围为±250、 主500、±1000与±2000° /sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g± 8g与± 16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。

(2)部分参数:

【使用芯片】:MPU-6050 【供电电源】:3-5V(内部低压差稳压) 【通信方式】:标准IIC通信协议 【芯片内置】:16bit AD转换器 【陀螺仪范围】:± 250 500 1000 2000 °/s 【加速度范围】: ±2±4±8±16g 

4.CubeMX配置 (1)芯片选择

 (2)配置RCC、SYS、时钟树

配置RCC

配置SYS

配置时钟树

(3)配置GPIO 

(4)配置串口1

(5)设置路径、生成代码工程

(6)解压文件

5、Keil5代码 (1)勾选Use MicroLIB

(2)添加文件

 (3)添加头文件路径

 (4)usrat.c代码添加 /* USER CODE BEGIN 0 */ #include "stdio.h" /* USER CODE END 0 */ /* USER CODE BEGIN 1 */ /********************************************************* * *重定义 fputc 函数 * *********************************************************/ int fputc(int ch,FILE *f) { HAL_UART_Transmit (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY ); return ch; } /* USER CODE END 1 */ (5)main函数 #include "stdio.h" #include "IIC.h" #include "mpu6050.h" #include "inv_mpu.h" #include "inv_mpu_dmp_motion_driver.h" //======================================================================== int main(void) { /* USER CODE BEGIN 1 */ float pitch,roll,yaw; //欧拉角 short aacx,aacy,aacz; //加速度传感器原始数据 short gyrox,gyroy,gyroz; //陀螺仪原始数据 float temp; //温度 /* 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_USART1_UART_Init(); /* USER CODE BEGIN 2 */ MPU_Init(); //MPU6050初始化 mpu_dmp_init(); //dmp初始化 /* USER CODE END 2 */ printf("初始化成功!\r\n"); /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_Delay(500); while(mpu_dmp_get_data(&pitch, &roll, &yaw)); //必须要用while等待,才能读取成功 MPU_Get_Accelerometer(&aacx,&aacy, &aacz); //得到加速度传感器数据 MPU_Get_Gyroscope(&gyrox, &gyroy, &gyroz); //得到陀螺仪数据 temp=MPU_Get_Temperature(); //得到温度信息 printf("X:%.1f° Y:%.1f° Z:%.1f° %.2f°C\r\n",roll,pitch,yaw,temp/100);//串口1输出采集信息 /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } 6.接线图及效果

  本例程源码下载:点击跳转 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3