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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3330|回復: 0
收起左側

SX1276_EasyLink_按鍵源碼 lora資料

[復制鏈接]
ID:413105 發表于 2018-10-21 15:05 | 顯示全部樓層 |閱讀模式
sx1276可以參考下
0.png

單片機源程序如下:
  1. ////////////////////////////////////////////////////////////////////////////////
  2. // 文件名:   main_tx/rx
  3. // 版本:    v1.0
  4. // 工作環境: IAR  v5.30
  5. // 作者:     于海波
  6. // 生成日期: 2013.12
  7. // 功能:      A發送包給B,黃燈閃爍,B模塊接到數據紅燈閃爍,B將數據回傳給A模塊,
  8. //            A接到數據后紅燈閃爍, 循環次操作,
  9. // 相關文件:
  10. // 修改日志:
  11. ////////////////////////////////////////////////////////////////////////////////

  12. #include <string.h>
  13. #include <stdint.h>
  14. #include <stdbool.h>
  15. #include "driver.h"
  16. #include "sx1276-f4152-Hal.h"
  17. #include "LSD_RF_SX1276.h"
  18. #include "LSD_RF_APPrf.h"
  19. #include "clock.h"
  20. //===================================定義變量===================================================
  21. long SysTick = 0;
  22. uint8_t TXbuffer[30]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29};
  23. uint8_t WakeAddr[8]={5,6,7,8,9,10,11,7};
  24. uint8_t Rxbuffer[64];
  25. //===================================函數聲明===================================================

  26. //===============================================================================================
  27. ////////////////////////////////////////////////////////////////////////////////
  28. // 功能描述 : 主函數
  29. // 輸入參數 : 無
  30. // 返回參數 : 無
  31. // 說明     :
  32. ////////////////////////////////////////////////////////////////////////////////
  33. typedef enum{
  34.     Nope,
  35.     B1080bps,//BW = 125KHz    SF = 9  CR = 4_6
  36.     B4000bps,//BW = 125KHz  SF = 7  CR = 4_5
  37.     B14000bps,//BW = 500KHz  SF = 7  CR = 4_6
  38. }t_Baudrate;
  39. t_Baudrate Baudrate = Nope;

  40. unsigned char *point;

  41. unsigned char LCD_p[9] = {0,0,0,0,0,8,0,1,0xff};
  42. int T_Cnt = 0;
  43. int R_Cnt = 0;
  44. bool RESET_Flag = false;
  45. void main( void )
  46. {
  47.     WDTCTL = WDTPW + WDTHOLD;            // 關閉看門狗
  48.     platform_init();                     //測試底板初始化
  49.     LEDONBAND(LEDALL);                   //初始化過程點亮所有LED燈
  50.     KEYBOARD_DIR &=~ (KEY_S1+KEY_S2);
  51.     KEYBOARD_IFG &=~ (KEY_S1+KEY_S2);
  52.     KEYBOARD_IES |= (KEY_S1+KEY_S2);
  53.     KEYBOARD_IE |= (KEY_S1+KEY_S2);
  54.    
  55.     point = (unsigned char *)(&(G_LoRaConfig.BandWidth));
  56.     flash_read(FLASH_ADDRESS_D,point,3*2);
  57.     if(G_LoRaConfig.BandWidth>BW500KHZ){
  58.         G_LoRaConfig.BandWidth=BW125KHZ;
  59.         G_LoRaConfig.SpreadingFactor = SF09;
  60.         G_LoRaConfig.CodingRate = CR_4_6;
  61.         flash_seg_clear(FLASH_ADDRESS_D);//寫之前必清除
  62.         flash_write(FLASH_ADDRESS_D,point,3*2);
  63.     }
  64.     if(G_LoRaConfig.BandWidth==BW500KHZ){
  65.         Baudrate = B14000bps;
  66.         LCD_p[8] = 1;
  67.         LCD_p[7] = 4;
  68.         LCD_p[6] = 0;
  69.         LCD_p[5] = 0;
  70.         LCD_p[4] = 0;
  71.     }
  72.     else{
  73.         if(G_LoRaConfig.SpreadingFactor==SF07){
  74.             Baudrate = B4000bps;
  75.             LCD_p[8] =0xff;
  76.             LCD_p[7] = 4;
  77.             LCD_p[6] = 0;
  78.             LCD_p[5] = 0;
  79.             LCD_p[4] = 0;
  80.         }
  81.         else{
  82.             Baudrate = B1080bps;
  83.             LCD_p[8] =0xff;
  84.             LCD_p[7] = 1;
  85.             LCD_p[6] = 0;
  86.             LCD_p[5] = 8;
  87.             LCD_p[4] = 0;
  88.         }
  89.     }
  90.     lcd_init();
  91.     LCD_Disp_ALL_Num(LCD_p);
  92.     //配置各個參數
  93.     G_LoRaConfig.LoRa_Freq = 470000000;   //中心頻點470MHz
  94.     //G_LoRaConfig.BandWidth = BW125KHZ;    //BW = 125KHz
  95.     //G_LoRaConfig.SpreadingFactor = SF09;  //SF = 9
  96.     //G_LoRaConfig.CodingRate = CR_4_6;     //CR = 4/6
  97.     G_LoRaConfig.PowerCfig = 15;          //19±dBm
  98.     G_LoRaConfig.MaxPowerOn = true;      
  99.     G_LoRaConfig.CRCON = true;            //CRC開啟
  100.     G_LoRaConfig.ExplicitHeaderOn = true; //Header開啟
  101.     G_LoRaConfig.PayloadLength = 20;      //數據包長度
  102.    
  103.     if(SX127x_init()!=NORMAL) WDTCTL=0;       //無線模塊初始化失敗復位
  104.     KEYBOARD_IE |= (KEY_S1+KEY_S2);
  105.     _EINT();                              //開總中斷
  106.     LEDOFFBIT(LEDALL);                   //初始化完畢關閉所有LED燈
  107.     ON_Timerout();                        //開啟定時器,1s一發數據
  108.     while(1)
  109.     {
  110.         LPM3;
  111.         if(RESET_Flag==true){
  112.             flash_seg_clear(FLASH_ADDRESS_D);//寫之前必清除
  113.             flash_write(FLASH_ADDRESS_D,point,3*2);
  114.             WDTCTL = 0;//RESET
  115.         }
  116.         
  117.         LSD_RF_RXmode();  //每次發送一包數據后,進入接收狀態,等待B模塊應答
  118.         LCD_p[0] = T_Cnt%10;
  119.         LCD_p[1] = T_Cnt/10%10;
  120.         LCD_p[2] = R_Cnt%10;
  121.         LCD_p[3] = R_Cnt/10%10;
  122.         LCD_Disp_ALL_Num(LCD_p);
  123.         if(T_Cnt>=100)
  124.             T_Cnt = 0;
  125.         if(R_Cnt>=100)
  126.             R_Cnt = 0;
  127.     }   
  128. }
  129. ////////////////////////////////////////////////////////////////////////////////
  130. // 功能描述 : 無線接收數據中斷入口
  131. // 輸入參數 : 無
  132. // 返回參數 : 無
  133. // 說明     :
  134. ////////////////////////////////////////////////////////////////////////////////
  135. #pragma vector = PORT1_VECTOR
  136. __interrupt void port1_isr(void)
  137. {  
  138.     if(KEYBOARD_IFG&(KEY_ALL)){
  139.         char Keys_Flag = KEYBOARD_IFG&(KEY_ALL);
  140.         switch(Keys_Flag&(KEY_S1|KEY_S2)){
  141.         case KEY_S1:
  142.             switch(Baudrate){
  143.             case B1080bps:
  144.                 G_LoRaConfig.BandWidth = BW125KHZ;    //BW = 125KHz
  145.                 G_LoRaConfig.SpreadingFactor = SF07;  //SF = 9
  146.                 G_LoRaConfig.CodingRate = CR_4_5;     //CR = 4/6
  147.                 Baudrate = B4000bps;
  148.                 break;
  149.             case B4000bps:
  150.                 G_LoRaConfig.BandWidth = BW500KHZ;    //BW = 125KHz
  151.                 G_LoRaConfig.SpreadingFactor = SF07;  //SF = 9
  152.                 G_LoRaConfig.CodingRate = CR_4_6;     //CR = 4/6
  153.                 Baudrate = B14000bps;
  154.                 break;
  155.             case B14000bps:
  156.             default:
  157.                 G_LoRaConfig.BandWidth = BW125KHZ;    //BW = 125KHz
  158.                 G_LoRaConfig.SpreadingFactor = SF09;  //SF = 9
  159.                 G_LoRaConfig.CodingRate = CR_4_6;     //CR = 4/6
  160.                 Baudrate = B1080bps;
  161.                 break;
  162.             }
  163.             RESET_Flag = true;
  164.             LPM3_EXIT;
  165.             break;
  166.         case KEY_S2:
  167.             T_Cnt = 0;
  168.             R_Cnt = 0;
  169.             break;
  170.         default:
  171.             break;
  172.         }
  173.         KEYBOARD_IFG &= ~KEY_ALL;
  174.         return;
  175.     }
  176.     if(DIO0_IFG)                                      //判斷是否是DIO0引起的中斷
  177.     {
  178.         DIO0_IFG = 0;                                  //清除DIO0中斷標志位
  179.         
  180.         LSD_RF_RxPacket(Rxbuffer);   //接收數據包
  181.         if((Rxbuffer[2]==2)&&(Rxbuffer[5]==5))
  182.         {
  183.             LEDONBIT(LED1);                                //狀態指示燈
  184.             DelayMs(60);
  185.             LEDOFFBIT(LED1);                               //狀態指示燈
  186.             R_Cnt++;
  187.         }
  188.                 LPM3_EXIT;  
  189.     }
  190.     P1IFG=0;
  191. }
  192. ////////////////////////////////////////////////////////////////////////////////
  193. // 功能描述 : 超時定時器
  194. // 輸入參數 : 無
  195. // 返回參數 : 無
  196. // 說明     : 用于誤喚醒,或喚醒失敗后超時時間到后重新進入WOR
  197. ////////////////////////////////////////////////////////////////////////////////
  198. #pragma vector = TIMER1_A0_VECTOR
  199. __interrupt void Timer1_A0_ISR()
  200. {
  201.     LEDONBIT(LED3);//發送狀態指示燈
  202.     G_LoRaConfig.PayloadLength = 20;
  203.     LSD_RF_SendPacket(TXbuffer);//發送30個字節數據測試
  204.     T_Cnt++;
  205.     LEDOFFBIT(LED3);//發送狀態指示燈
  206.     LPM3_EXIT;
  207. }
復制代碼

所有資料51hei提供下載:
SX1276_EasyLink_2F717NXX按鍵.zip (398.45 KB, 下載次數: 18)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产精品午夜一区 | 欧美日韩成人影院 | 亚洲国产精品99久久久久久久久 | 欧美电影大全 | 久久男女视频 | 999国产精品视频免费 | 一级做a爰片性色毛片视频停止 | 国产精品亚洲视频 | 久久婷婷色 | 91精品91久久久 | 羞羞视频网站在线观看 | 国产精品精品久久久 | 午夜影院网站 | 看片天堂 | 91精品无人区卡一卡二卡三 | 国产视频欧美 | 日韩一级免费看 | 亚洲成av片人久久久 | 亚洲第一天堂 | 久久99精品国产 | 国产成人综合在线 | 中文字幕一区二区三区在线视频 | 久久毛片| 国产欧美日韩一区二区三区在线 | 91文字幕巨乱亚洲香蕉 | 久久性色 | 天天色综 | 国产探花 | 欧美一级做性受免费大片免费 | 国产精品一区二区免费看 | 成人黄在线观看 | 精久久| 国产精品久久久久无码av | 午夜免费网站 | 日本精品一区二区三区在线观看视频 | 亚洲精品久久久久中文字幕二区 | 欧美日本韩国一区二区三区 | 欧美一级片在线 | 日韩av网址在线观看 | 国产精品视频久久 | 99久久久国产精品免费消防器 |