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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

SX1276_EasyLink_按鍵源碼 lora資料

[復制鏈接]
跳轉到指定樓層
樓主
sx1276可以參考下


單片機源程序如下:
  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)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人一区二区 | 欧美精品国产精品 | 三级黄色片在线观看 | 一区二区av在线 | 一级看片免费视频囗交动图 | 免费毛片在线 | 激情欧美一区二区三区中文字幕 | 精品一区电影 | 一区二区精品电影 | 欧美日韩精品一区二区三区蜜桃 | 国产传媒毛片精品视频第一次 | 亚洲精品一二三区 | 成人一区二区三区 | 国产精久久久久久 | 欧美二区三区 | 亚洲高清一区二区三区 | 久久久人成影片一区二区三区 | 国产农村妇女精品一区 | 自拍在线| 在线观看中文字幕 | 欧美精品久久久 | 国产精品久久久久久妇女6080 | 亚洲欧美激情精品一区二区 | а_天堂中文最新版地址 | 91综合网 | 免费国产精品久久久久久 | 久久丝袜 | h片在线免费看 | 五月婷亚洲 | 免费中文字幕 | 视频在线观看一区二区 | 中文字幕在线一区 | 日韩电影中文字幕 | 日韩国产高清在线观看 | 日本一区二区三区视频在线 | 国产成人网 | 天天天天操 | 99精品一区二区三区 | 国产福利视频导航 | 最新免费av网站 | 亚洲欧美日韩精品久久亚洲区 |