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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2559|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32解析MPU6050源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:222817 發(fā)表于 2017-7-27 17:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
使用STM32 MPU6050編寫(xiě)的程序

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "MY_time_Conf.h"
  6. //#include "uart_1.h"
  7. //#include "dma.h"
  8. //#include "RS485.h"
  9. //#include "74hc595.h"
  10. #include "string.h"

  11. /**************************
  12. 模板配置信息:
  13. 選用芯片是 stm32f103vc
  14. 啟動(dòng)信息:stm32f10x_hd.s
  15. 固件庫(kù):stm32固件庫(kù)v3.5
  16. ***************************/

  17. #define led_PB12   PBout(12)           //位綁定,位定義PB12口作為L(zhǎng)ED輸出。這樣速度最快
  18. //#define led_PB1   PBout(1)           //位綁定,位定義PB1口作為L(zhǎng)ED輸出。這樣速度最快
  19. //#define PA9   PAout(10)
  20. //#define CLK1   PDout(0)
  21. //#define CWW1   PDout(1)
  22. //#define CLK2   PDout(2)
  23. //#define CWW2   PDout(3)


  24. //uint8_t i = 0;    //測(cè)試用

  25. float a[3],w[3],angle[3],T;
  26. extern unsigned char Re_buf[11],temp_buf[11],counter;
  27. extern unsigned char sign;

  28. /*************************************************
  29. 函數(shù): int main(void)
  30. 功能: main主函數(shù)
  31. 參數(shù): 無(wú)
  32. 返回: 無(wú)
  33. **************************************************/

  34. int main(void)
  35. {
  36.    unsigned char Temp[11];
  37.    //u8 i;

  38.    RCC_Configuration();      //初始化時(shí)鐘
  39.    GPIO_Configuration();      //初始化IO端口
  40.    delay_init(72);            //初始化延時(shí)函數(shù)
  41.    NVIC_Configuration();      //中斷優(yōu)先級(jí)初始化

  42.    USART1_Config();   //初始化 配置USART1
  43.    USART2_Config();   //初始化 配置USART2 (用于接收MPU6050數(shù)據(jù))
  44.    
  45.    delay_ms(200);
  46.       
  47.    while (1)
  48.    {
  49.       if(sign)
  50.       {  
  51.          memcpy(Temp,Re_buf,11);
  52.          sign=0;
  53.          if(Re_buf[0]==0x55)       //檢查幀頭
  54.          {  
  55.             switch(Re_buf[1])
  56.             {
  57.                case 0x51: //標(biāo)識(shí)這個(gè)包是加速度包
  58.                   a[0] = ((short)(Temp[3]<<8 | Temp[2]))/32768.0*16;      //X軸加速度
  59.                   a[1] = ((short)(Temp[5]<<8 | Temp[4]))/32768.0*16;      //Y軸加速度
  60.                   a[2] = ((short)(Temp[7]<<8 | Temp[6]))/32768.0*16;      //Z軸加速度
  61.                   T    = ((short)(Temp[9]<<8 | Temp[8]))/340.0+36.25;      //溫度
  62.                   break;
  63.                case 0x52: //標(biāo)識(shí)這個(gè)包是角速度包
  64.                   w[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*2000;      //X軸角速度
  65.                   w[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*2000;      //Y軸角速度
  66.                   w[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*2000;      //Z軸角速度
  67.                   T    = ((short)(Temp[9]<<8| Temp[8]))/340.0+36.25;      //溫度
  68.                   break;
  69.                case 0x53: //標(biāo)識(shí)這個(gè)包是角度包
  70.                   angle[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*180;   //X軸滾轉(zhuǎn)角(x 軸)
  71.                   angle[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*180;   //Y軸俯仰角(y 軸)
  72.                   angle[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*180;   //Z軸偏航角(z 軸)
  73.                   T        = ((short)(Temp[9]<<8| Temp[8]))/340.0+36.25;   //溫度

  74.                   //printf("X軸角度:%.2f   Y軸角度:%.2f   Z軸角度:%.2f\r\n",angle[0],angle[1],angle[2]);
  75.                   break;
  76.                default:  break;
  77.             }
  78.                         printf("X角度:%.2f  Y角度:%.2f  Z角度:%.2f  X速度:%.2f  Y速度:%.2f  Z速度:%.2f\r\n",angle[0],angle[1],angle[2],w[0],w[1],w[2]);
  79.          }
  80.          
  81.       }
  82.       delay_ms(50);
  83.    }
  84. }


  85. /*
  86. int main(void)
  87. {
  88.        
  89.         //u8 i;

  90.         RCC_Configuration();           //初始化時(shí)鐘
  91.         GPIO_Configuration();           //初始化IO端口
  92.         delay_init(72);                           //初始化延時(shí)函數(shù)
  93.         NVIC_Configuration();           //中斷優(yōu)先級(jí)初始化

  94.         USART1_Config();   //初始化 配置USART1
  95.         USART2_Config();   //初始化 配置USART2 (用于接收MPU6050數(shù)據(jù))
  96.        
  97.         delay_ms(200);

  98.                
  99.         while (1)
  100.         {
  101.                 if(sign)
  102.                 {  
  103.                         sign=0;
  104. //                        if(Re_buf[0]==0x55)       //檢查幀頭
  105. //                        {  
  106. //                                switch(Re_buf[1])
  107. //                                {
  108. //                                        case 0x51: //標(biāo)識(shí)這個(gè)包是加速度包
  109. //                                                a[0] = ((short)(Re_buf[3]<<8 | Re_buf[2]))/32768.0*16;                //X軸加速度
  110. //                                                a[1] = ((short)(Re_buf[5]<<8 | Re_buf[4]))/32768.0*16;                //Y軸加速度
  111. //                                                a[2] = ((short)(Re_buf[7]<<8 | Re_buf[6]))/32768.0*16;                //Z軸加速度
  112. //                                                T    = ((short)(Re_buf[9]<<8 | Re_buf[8]))/340.0+36.25;                //溫度
  113. //                                                break;
  114. //                                        case 0x52: //標(biāo)識(shí)這個(gè)包是角速度包
  115. //                                                w[0] = ((short)(Re_buf[3]<<8| Re_buf[2]))/32768.0*2000;                //X軸角速度
  116. //                                                w[1] = ((short)(Re_buf[5]<<8| Re_buf[4]))/32768.0*2000;                //Y軸角速度
  117. //                                                w[2] = ((short)(Re_buf[7]<<8| Re_buf[6]))/32768.0*2000;                //Z軸角速度
  118. //                                                T    = ((short)(Re_buf[9]<<8| Re_buf[8]))/340.0+36.25;                //溫度
  119. //                                                break;
  120. //                                        case 0x53: //標(biāo)識(shí)這個(gè)包是角度包
  121. //                                                angle[0] = ((short)(Re_buf[3]<<8| Re_buf[2]))/32768.0*180;        //X軸滾轉(zhuǎn)角(x 軸)
  122. //                                                angle[1] = ((short)(Re_buf[5]<<8| Re_buf[4]))/32768.0*180;        //Y軸俯仰角(y 軸)
  123. //                                                angle[2] = ((short)(Re_buf[7]<<8| Re_buf[6]))/32768.0*180;        //Z軸偏航角(z 軸)
  124. //                                                T        = ((short)(Re_buf[9]<<8| Re_buf[8]))/340.0+36.25;        //溫度
  125. //
  126. //                                                //printf("X軸角度:%.2f   Y軸角度:%.2f   Z軸角度:%.2f\r\n",angle[0],angle[1],angle[2]);
  127. //                                                printf("%.2f   %.2f   %.2f\r\n",angle[0],angle[1],angle[2]);
  128. //                                                break;
  129. //                                        default:  break;
  130. //                                }
  131. //                        }
  132.                         //printf("X角度:%.2f  Y角度:%.2f  Z角度:%.2f  X速度:%.2f  Y速度:%.2f  Z速度:%.2f\r\n",angle[0],angle[1],angle[2],w[0],w[1],w[2]);

  133. //                        if(temp_buf[0]==0x55)       //檢查幀頭
  134. //                        {  
  135. //                                temp_buf[0] = 0;
  136. //                                switch(temp_buf[1])
  137. //                                {
  138. //                                        case 0x51: //標(biāo)識(shí)這個(gè)包是加速度包
  139. //                                                a[0] = ((short)(temp_buf[3]<<8 | temp_buf[2]))/32768.0*16;                //X軸加速度
  140. //                                                a[1] = ((short)(temp_buf[5]<<8 | temp_buf[4]))/32768.0*16;                //Y軸加速度
  141. //                                                a[2] = ((short)(temp_buf[7]<<8 | temp_buf[6]))/32768.0*16;                //Z軸加速度
  142. //                                                T    = ((short)(temp_buf[9]<<8 | temp_buf[8]))/340.0+36.25;                //溫度
  143. //                                                break;
  144. //                                        case 0x52: //標(biāo)識(shí)這個(gè)包是角速度包
  145. //                                                w[0] = ((short)(temp_buf[3]<<8| temp_buf[2]))/32768.0*2000;                //X軸角速度
  146. //                                                w[1] = ((short)(temp_buf[5]<<8| temp_buf[4]))/32768.0*2000;                //Y軸角速度
  147. ……………………

  148. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
STM32解析MPU6050.zip (386.78 KB, 下載次數(shù): 19)



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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲久久一区 | 久久伦理中文字幕 | 欧美色综合天天久久综合精品 | 盗摄精品av一区二区三区 | 91精品观看 | 国产日韩欧美中文 | 日韩成人av在线播放 | 欧美日韩成人 | 国产一区二区三区在线看 | 99久久99久久精品国产片果冰 | 精品国产乱码久久久久久88av | 久久久久久91| 国产综合精品一区二区三区 | 精品久久国产老人久久综合 | av色在线| 亚洲精品电影在线观看 | 日韩电影中文字幕在线观看 | 一区二区三区久久久 | 亚洲精品成人在线 | 高清久久久 | 成人av片在线观看 | wwwxxx国产 | 日韩三级| 午夜三区 | 日本午夜精品 | 99久久精品国产毛片 | 成人午夜激情 | 在线视频日韩精品 | 国产真实精品久久二三区 | 全免费a级毛片免费看视频免费下 | 成人国产精品免费观看 | 色黄爽 | 国产精品成人一区二区三区夜夜夜 | 一级欧美 | 国产男女视频网站 | 欧美999 | 农夫在线精品视频免费观看 | 国产女人与拘做视频免费 | 亚洲 91 | 一本综合久久 | 精品视频在线一区 |