MPU9250传感器三轴加速度与三轴角速度值读取demo, 读取后的各个方向的值均通过串口打印输出, 供大家学习参考!
串口输出的数据
单片机源程序如下:
- #include "uartdebug.h"
- #include "Timer_Int.h"
- #include "mpu9250.h"
- #include "stdio.h"
- //宏常量与设置
- //全局变量声明
- short Accx_AD, Accy_AD, Accz_AD; //加速度计三个轴的测量值;
- short Gyrx_AD, Gyry_AD, Gyrz_AD; //陀螺仪三个轴的角速度
- xdata float Accx, Accy, Accz; //各方向上加速度实际量
- xdata float Gyrx, Gyry, Gyrz; //各方向上的角速度实际量
- xdata uint8_t strbuf[15]; //字符缓冲区,用于串口输出测量值
- //模块内部的子函数声明
- //主函数--模板范例
- void main(){
- UartInit();//调试输出的串口的初始化
- Timer_Init(); //定时器初始化
- Mpu9250_Init(); //MPU9250初始化
- while(1){
- if(!TimerC_1s){
- TimerC_1s=1;
-
- Accx_AD=GetData(ACCEL_XOUT_H); //加速度计三个轴方向上的AD测量值
- Accy_AD=GetData(ACCEL_YOUT_H);
- Accz_AD=GetData(ACCEL_ZOUT_H);
- Gyrx_AD=GetData(GYRO_XOUT_H); //陀螺仪三个轴的角速度AD值
- Gyry_AD=GetData(GYRO_YOUT_H);
- Gyrz_AD=GetData(GYRO_ZOUT_H);
- Accx=Accx_AD/8192.0; //各方向的实际值以g为单位, 分辨率为8192 LSB/g
- Accy=Accy_AD/8192.0;
- Accz=Accz_AD/8192.0;
- Gyrx=Gyrx_AD/16.384; //单位为角度;
- Gyry=Gyry_AD/16.384;
- Gyrz=Gyrz_AD/16.384;
-
- /***** 串口送出相关的测量结果值 ******/
- UartTxString("Acceler( g)\r\n");
- sprintf(strbuf, "x:%.3f\t", Accx);
- UartTxString(strbuf);
- sprintf(strbuf, "y:%.3f\t", Accy);
- UartTxString(strbuf);
- sprintf(strbuf, "z:%.3f\r\n", Accz);
- UartTxString(strbuf);
-
- UartTxString("Gyroer( deg/s)\r\n");
- sprintf(strbuf, "x:%.3f\t", Gyrx);
- UartTxString(strbuf);
- sprintf(strbuf, "y:%.3f\t", Gyry);
- UartTxString(strbuf);
- sprintf(strbuf, "z:%.3f\r\n\r\n", Gyrz);
- UartTxString(strbuf);
-
- }
- // do... continue!
- ;
- }
- }
复制代码
所有资料51hei提供下载:
2020年4月21日_MPU9250三轴读取.rar
(77.96 KB, 下载次数: 72)
|