标题:
STM32C8T6+MUP6050+DMP+输出俯仰角+翻滚角+偏航角
[打印本页]
作者:
k455619
时间:
2017-9-14 14:00
标题:
STM32C8T6+MUP6050+DMP+输出俯仰角+翻滚角+偏航角
利用mup6050自带的DMP,在mup6050中直接输出俯仰角+翻滚角+偏航角,下载好程序后,将mup6050水平放置,因为要自检,如果不水平放置,自检不会通过,则不能初始化DMP,在程序中,inv_mpu_dmp_motion_driver.c以及inv_mpu.c是官方的示例程序经由正点原子修改,我直接移植该程序。
2.png
(26.7 KB, 下载次数: 66)
下载附件
水平放置初始化DMP后的角度
2017-9-14 13:56 上传
stm32单片机源程序如下:
#include "delay.h"
#include "usart.h"
#include "mup6050.h"
#include "mup6050iic.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h"
u16 G_X,G_Y,G_Z,A_X,A_Y,A_Z;
u8 A[6],G[6],J[1],i;
int main(void){
delay_init();
uart_init(115200);
IIC_Init();
delay_ms(200);
i=mpu_dmp_init();
while(1){
float pitch,roll,yaw;
mup6050_R_l(0x68,0x3b,6,A);
A_X=((u16)A[0]<<8)|A[1];
A_Y=((u16)A[2]<<8)|A[3];
A_Z=((u16)A[4]<<8)|A[5];
mup6050_R_l(0x68,0x43,6,G);
G_X=((u16)G[0]<<8)|G[1];
G_Y=((u16)G[2]<<8)|G[3];
G_Z=((u16)G[4]<<8)|G[5];
mpu_dmp_get_data(&pitch,&roll,&yaw);
printf("\r\n出错于第%d步\r\n",i);
printf("\r\n---------俯仰角---------%f\r\n",pitch);
printf("\r\n---------翻滚角---------%f\r\n",roll);
printf("\r\n---------航篇---------%f\r\n",yaw);
printf("\r\n---------加速度X轴原始数据---------%d \r\n",A_X);
printf("\r\n---------加速度Y轴原始数据---------%d \r\n",A_Y);
printf("\r\n---------加速度Z轴原始数据---------%d \r\n",A_Z);
printf("\r\n---------陀螺仪X轴原始数据---------%d \r\n",G_X);
printf("\r\n---------陀螺仪Y轴原始数据---------%d \r\n",G_Y);
printf("\r\n---------陀螺仪Z轴原始数据---------%d \r\n",G_Z);
delay_ms(10);
}
}
复制代码
所有资料51hei提供下载:
MUP6050+STM32.rar
(337.09 KB, 下载次数: 93)
2017-9-14 16:39 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
dxa572862121
时间:
2017-9-27 15:35
恩,最近也在做这样的课题
作者:
jiangkeqin_sy
时间:
2019-7-30 09:02
恩,最近也在做这样的课题
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1