久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2995|回復: 2
打印 上一主題 下一主題
收起左側

mpu6050 dmp 歐拉角串口輸出 STM32源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:522930 發表于 2019-4-27 14:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
歐拉角輸出,pitch roll  yaw很精準

單片機源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"               
  3. #include "delay.h"
  4. #include "exti.h"
  5. #include "tim.h"
  6. #include "dianji.h"
  7. #include "led.h"
  8. #include "color.h"
  9. #include "exti.h"
  10. #include "duojipwm.h"
  11. #include "huidu.h"
  12. #include "mpu6050.h"
  13. #include "inv_mpu.h"
  14. #include "inv_mpu_dmp_motion_driver.h"
  15. #include "mpuhanshu.h"


  16. #define EXTI_H4_OFF EXTI->IMR&=~(1<<8)
  17. #define EXTI_H6_OFF EXTI->IMR&=~(1<<13)
  18. #define EXTI_Z1_OFF EXTI->IMR&=~(1<<4)
  19. #define EXTI_H4_ON EXTI->IMR|=1<<8
  20. #define EXTI_H6_ON EXTI->IMR|=1<<13
  21. #define EXTI_Z1_ON EXTI->IMR|=1<<4
  22. #define a 95
  23. #define b 170
  24. #define c 60
  25. #define d 240
  26. #define e 0
  27. int dd[22]={70,70,//直行
  28.                  75,65,//右一微轉
  29.                  80,60,//右二微轉
  30.                  90,50,//右三微轉
  31.                  80,30,//右四微轉
  32.                  80,20,//右五微轉
  33.                  65,75,//左一微轉
  34.                  65,80,//左二微轉
  35.                  50,90,//左三微轉
  36.                  30,80,//左四微轉
  37.                  20,80};//左五微轉
  38. extern u16 zuoma;
  39. extern u16 youma;
  40. extern s16 zuospeed;
  41. extern s16 youspeed;
  42. extern u8 zuopwm;
  43. extern u8 youpwm;
  44. extern u8 countH1;
  45. extern u8 countH2;
  46. extern u8 countH3;
  47. extern u8 countH4;
  48. extern u8 countH5;
  49. extern u8 countH6;
  50. extern u8 countH7;
  51. extern u8 countH8;
  52. extern u8 countZ1;
  53. extern u8 countY1;
  54. extern u8 zhixing;
  55. extern u16 ServoPwmDuty[5]        ;
  56. extern u16 ServoPwmDutySet[5];
  57. extern u16 times;
  58. unsigned int code_data;
  59. int code_flag;
  60. int yaw1;
  61. u16 ryz;
  62. u16 byz;
  63. u16 gyz;
  64. u16 rr;
  65. u16 bb;
  66. u16 gg;
  67. u16 ryzcount=0;
  68. u16 byzcount=0;
  69. u16 gyzcount=0;       
  70. int main(void)
  71. {       
  72.         u8 flag1;
  73.         float pitch,roll,yaw;                 //歐拉角


  74.         Stm32_Clock_Init(9);        //系統時鐘設置
  75.         delay_init(72);
  76.         uart_init(72,115200);
  77.         uart2_init(32,9600);
  78.   ServoPwmDuty[0]=a;
  79.         ServoPwmDuty[1]=b;
  80.         ServoPwmDuty[2]=c;
  81.         ServoPwmDuty[3]=d;
  82.         ServoPwmDuty[4]=e;
  83.   ServoPwmDutySet[0]=a;
  84.   ServoPwmDutySet[1]=b;
  85.   ServoPwmDutySet[2]=c;
  86.   ServoPwmDutySet[3]=c;
  87.   ServoPwmDutySet[4]=d;        //延時初始化
  88.   countH1=0;
  89.   countH2=0;
  90.   countH3=0;
  91.   countH4=0;
  92.   countH5=0;
  93.   countH6=0;
  94.   countH7=0;
  95.   countH8=0;
  96.   countZ1=0;
  97.   countY1=0;
  98.         zhixing=0;
  99.   code_flag=0;       
  100.   flag1=1;       
  101.         huidu_init();
  102.         dianji_init();
  103.         exti_init();
  104.         led_init();
  105.        
  106.         tim3_PWM_init(17999,0);//電機pwm  對應pc6,7,8,9,pwm頻率8khz
  107.         tim4_duojiPWM_init(3599,399);
  108.   tim2_duojiPWM_init(3599,399);  //pwm產生
  109.   //tim7_duoji_init(719,3999);  //舵機速度控制
  110.         //TIM6_init(3599,199);    //用于延時10MS  發生一次中斷
  111.         tim1_init(700,0);//顏色傳感器計數
  112.         while(MPU_Init()!=0)printf("over1\r\n");                                        //初始化MPU6050
  113. while(mpu_dmp_init()!=0)printf("over2\r\n");
  114. while(1)
  115.         {
  116.                 while(mpu_dmp_get_data(&pitch,&roll,&yaw));
  117.                 printf("pitch=%f,roll=%f,yaw=%f\n",pitch,roll,yaw);
  118.                
  119.                
  120.         }
  121.         printf("初始化成功");
  122.         while(1);
  123.        
  124. //        delayms(200);
  125. //                while(1)
  126. //                {
  127. //                        i++;
  128. //                       
  129. //                        color_measure();
  130. //                        delayms(200);
  131. //                        ryzcount+=rr;
  132. //                        byzcount+=bb;
  133. //                        gyzcount+=gg;
  134. //                        printf("%d**%d**%d\n",rr,gg,bb);
  135. //                        if(i>=10)
  136. //                        {
  137. //                                printf("%d**%d**%d\n",ryzcount/10,gyzcount/10,byzcount/10);
  138. //                                while(1);
  139. //                        }
  140. //                       
  141. //                }               
  142.                 while(1)
  143.                 {
  144.                         Digital___8();
  145.                 }
  146.                 drive(60,60);
  147.                
  148.         countZ1=0;
  149.         while(1)
  150.         {
  151.                 if(countZ1>=1)
  152.                 {
  153.                         drive(80,-80);
  154.                         break;
  155.                 }
  156.         }
  157.        
  158.         //delayms(630);
  159.         countZ1=0;
  160.         while(1)
  161.         {
  162.           Digital_8();
  163.                 if(countZ1>=6)
  164.                         break;
  165.         }
  166.         drive(90,-90);
  167.         //delayms(1000);
  168.         qianjin();
  169. //        delayms(100);
  170.         countZ1=0;
  171.         while(1)
  172.         {
  173.                 Digital_8();
  174.                
  175.                 if(countZ1>=2)
  176.                         break;
  177.         }
  178.         drive(-30,-30);
  179.         //delayms(300);
  180.         stop();
  181.        
  182.      
  183.        
  184.        
  185.                
  186.                
  187.        
  188.        
  189.        
  190.         while(1)
  191.         {
  192.                 printf("**%d**%d\n",countY1,countZ1);
  193.                 delay_ms(1000);
  194.                 delay_ms(1000);
  195.                 delay_ms(1000);
  196.                 LED0=~LED0;
  197.         }
  198.        
  199.        
  200.        

  201.        
  202.           
  203. }
復制代碼

所有資料51hei提供下載:
加入6250的嘗試2-dmp - 副本.7z (141.97 KB, 下載次數: 55)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:543896 發表于 2019-5-22 22:13 | 只看該作者
我來驗證一下
回復

使用道具 舉報

板凳
ID:696834 發表于 2020-4-9 20:45 | 只看該作者

怎么樣啊?朋友。能用嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品亚洲日本在线观看 | 一区二区三区四区电影 | 综合激情久久 | 日日操日日干 | 日本午夜在线视频 | 亚洲欧美日韩精品久久亚洲区 | 欧美精品一区二区免费 | 午夜a√| 午夜不卡一区二区 | 毛片在线看片 | 久久国产精品72免费观看 | 欧美国产精品一区二区 | 久久精品视频在线播放 | 日本高清视频在线播放 | 91久久久久久久久久久久久 | 亚洲日本三级 | 欧美性大战xxxxx久久久 | 极品久久| 国产一区二区在线视频 | 精品视频在线观看 | 日日干日日操 | 中文字幕一区二区三 | 天堂网中文 | 精品国产精品三级精品av网址 | 国产精品一区在线 | 久久99深爱久久99精品 | 人人草天天草 | 成人在线一区二区 | 网黄在线 | 99久热在线精品视频观看 | 91精品国产91久久久久久最新 | 天天操天天摸天天干 | 欧美成人猛片aaaaaaa | av片免费 | 久久久青草婷婷精品综合日韩 | 欧美精品一区三区 | 免费一级淫片aaa片毛片a级 | 国产一区二区影院 | 久久亚洲国产 | 丁香久久| 国产精品久久久久久久久久尿 |