找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2689|回复: 1
打印 上一主题 下一主题
收起左侧

MPU6050测角度stm32程序

[复制链接]
跳转到指定楼层
楼主
ID:226546 发表于 2017-8-10 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享一个别人使用F1mini开发板 使用6050测角度的程序的程序

所有资料51hei提供下载:
程序3 读出数据.rar (406.83 KB, 下载次数: 41)

stm32单片机源程序(主程序)如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. #include "key.h"  
  7. #include "MPU6050.h"
  8. #include "myiic.h"
  9. #include "usart.h"
  10. #include "adc.h"
  11. #include "dma.h"
  12. #include "math.h"
  13. #include "inv_mpu.h"
  14. #include "inv_mpu_dmp_motion_driver.h"
  15. //ALIENTEK Mini STM32开发板范例代码19
  16. //IIC实验  
  17.            
  18. u16 table[8]={0};
  19. int main(void)
  20. {         
  21.          u8 t;
  22.          float pitch,roll,yaw;                 //欧拉角
  23.         short aacx,aacy,aacz;                //加速度传感器原始数据
  24.         short gyrox,gyroy,gyroz;        //陀螺仪原始数据
  25.         short temp;
  26.         NVIC_Configuration();
  27.         delay_init();                     //延时函数初始化         
  28.         uart_init(9600);                  //串口初始化为9600
  29.          LCD_Init();                 
  30.         Init_MUP6050();                   //IIC初始化

  31.         while(mpu_dmp_init())
  32.         {
  33.                 LCD_ShowString(30,130,200,16,16,"MPU6050 Error");
  34.                 delay_ms(200);
  35.                 LCD_Fill(30,130,239,130+16,WHITE);
  36.                  delay_ms(200);
  37.         }
  38.         LCD_ShowString(30,130,200,16,16,"MPU6050 OK");
  39.         LCD_ShowString(30,150,200,16,16,"KEY0:UPLOAD ON/OFF");
  40.         POINT_COLOR=BLUE;//设置字体为蓝色
  41.          LCD_ShowString(30,170,200,16,16,"UPLOAD ON ");         
  42.          LCD_ShowString(30,200,200,16,16," Temp:    . C");        
  43.          LCD_ShowString(30,220,200,16,16,"Pitch:    . C");        
  44.          LCD_ShowString(30,240,200,16,16," Roll:    . C");         
  45.          LCD_ShowString(30,260,200,16,16," Yaw :    . C");        
  46.         


  47.         while(1)
  48.         {
  49.         

  50.                 {
  51.                         MPU_Get_Accelerometer(&aacx,&aacy,&aacz);        //得到加速度传感器数据
  52.                         MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);        //得到陀螺仪数据
  53.                         mpu_dmp_get_data(&pitch,&roll,&yaw);
  54.                                 
  55.                                 temp=pitch*10;
  56.                                 if(temp<0)
  57.                                 {
  58.                                         LCD_ShowChar(30+48,220,'-',16,0);                //显示负号
  59.                                         temp=-temp;                //转为正数
  60.                                 }else LCD_ShowChar(30+48,220,' ',16,0);                //去掉负号
  61.                                 LCD_ShowNum(30+48+8,220,temp/10,3,16);                //显示整数部分            
  62.                                 LCD_ShowNum(30+48+40,220,temp%10,1,16);                //显示小数部分
  63.                                 
  64.                                  
  65.                                 temp=roll*10;
  66.                                 if(temp<0)
  67.                                 {
  68.                                         LCD_ShowChar(30+48,240,'-',16,0);                //显示负号
  69.                                         temp=-temp;                //转为正数
  70.                                 }else LCD_ShowChar(30+48,240,' ',16,0);                //去掉负号
  71.                                 LCD_ShowNum(30+48+8,240,temp/10,3,16);                //显示整数部分            
  72.                                 LCD_ShowNum(30+48+40,240,temp%10,1,16);                //显示小数部分


  73.                                 temp=yaw*10;
  74.                                 if(temp<0)
  75.                                 {
  76.                                         LCD_ShowChar(30+48,260,'-',16,0);                //显示负号
  77.                                         temp=-temp;                //转为正数
  78.                                 }else LCD_ShowChar(30+48,260,' ',16,0);                //去掉负号
  79.                                 LCD_ShowNum(30+48+8,260,temp/10,3,16);                //显示整数部分            
  80.                                 LCD_ShowNum(30+48+40,260,temp%10,1,16);                //显示小数部分  
  81.                         
  82.                         
  83.                 }
  84.                
  85.         }         

  86. }
复制代码




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:226388 发表于 2017-8-10 22:27 | 只看该作者
这个引脚怎么连接?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表