找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

jy-61傳感器STM32F1版本程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:293035 發(fā)表于 2020-3-25 09:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
jy-61傳感器STM32F1版本,供參考使用

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "oled.h"
  7. #include "string.h"


  8. extern unsigned char Re_buf[11],temp_buf[11],counter;
  9. extern unsigned char sign,t,he;
  10. float a[3],w[3],angle[3],T;
  11. extern  unsigned char Temp[11];
  12. char dis_main[20];
  13. int main(void)
  14. {               
  15.         u16 t;  
  16.         u16 len;       
  17.         u16 times=0;
  18.         delay_init();                     //延時函數(shù)初始化          
  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  20.         uart_init(115200);         //串口初始化為115200
  21.         LED_Init();                             //LED端口初始化
  22.         KEY_Init();          //初始化與按鍵連接的硬件接口
  23.         OLED_Init();
  24.         while(1)
  25.         {
  26.                
  27.                  if(sign)
  28.       {  
  29.          memcpy(Temp,Re_buf,11);
  30.          sign=0;
  31.          if(Re_buf[0]==0x55)       //檢查幀頭
  32.          {  
  33.             switch(Re_buf[1])
  34.             {
  35.                case 0x51: //標識這個包是加速度包
  36.                   a[0] = ((short)(Temp[3]<<8 | Temp[2]))/32768.0*16;      //X軸加速度
  37.                   a[1] = ((short)(Temp[5]<<8 | Temp[4]))/32768.0*16;      //Y軸加速度
  38.                   a[2] = ((short)(Temp[7]<<8 | Temp[6]))/32768.0*16;      //Z軸加速度
  39.                   T    = ((short)(Temp[9]<<8 | Temp[8]))/340.0+36.25;      //溫度
  40.                   break;
  41.                case 0x52: //標識這個包是角速度包
  42.                   w[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*2000;      //X軸角速度
  43.                   w[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*2000;      //Y軸角速度
  44.                   w[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*2000;      //Z軸角速度
  45.                   T    = ((short)(Temp[9]<<8| Temp[8]))/340.0+36.25;      //溫度
  46.                   break;
  47.                case 0x53: //標識這個包是角度包
  48.                   angle[0] = ((short)(Temp[3]<<8| Temp[2]))/32768.0*180;   //X軸滾轉(zhuǎn)角(x 軸)
  49.                   angle[1] = ((short)(Temp[5]<<8| Temp[4]))/32768.0*180;   //Y軸俯仰角(y 軸)
  50.                   angle[2] = ((short)(Temp[7]<<8| Temp[6]))/32768.0*180;   //Z軸偏航角(z 軸)
  51.                   T        = ((short)(Temp[9]<<8| Temp[8]))/340.0+36.25;   //溫度

  52.                   //printf("X軸角度:%.2f   Y軸角度:%.2f   Z軸角度:%.2f\r\n",angle[0],angle[1],angle[2]);
  53.                   break;
  54.                default:  break;
  55.             }
  56.          }
  57.          
  58.       }
  59. //                         sprintf(dis_main,"           ");
  60. //             OLED_ShowString(0,0,(u8*)dis_main);
  61. //                         sprintf(dis_main,"                   ");
  62. //             OLED_ShowString(0,2,(u8*)dis_main);
  63.                        
  64.                          //顯示角度
  65.                          sprintf(dis_main,"X=%d  Y=%d  ",(int )(angle[0]),(int)(angle[1]));
  66.              OLED_ShowString(0,0,(u8*)dis_main);
  67.                          sprintf(dis_main,"Z=%d  T=%d  ",(int )(angle[2]),(int)(T));
  68.              OLED_ShowString(0,2,(u8*)dis_main);
  69.                        
  70.                        
  71.                        
  72.                        
  73.                        
  74.                        
  75.                
  76.         }         
  77. }
復(fù)制代碼

所有資料51hei提供下載:
JY61測試代碼.7z (194.9 KB, 下載次數(shù): 30)


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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表