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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3361|回復: 0
收起左側(cè)

SX1276_EasyLink_按鍵源碼 lora資料

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

單片機源程序如下:
  1. ////////////////////////////////////////////////////////////////////////////////
  2. // 文件名:   main_tx/rx
  3. // 版本:    v1.0
  4. // 工作環(huán)境: IAR  v5.30
  5. // 作者:     于海波
  6. // 生成日期: 2013.12
  7. // 功能:      A發(fā)送包給B,黃燈閃爍,B模塊接到數(shù)據(jù)紅燈閃爍,B將數(shù)據(jù)回傳給A模塊,
  8. //            A接到數(shù)據(jù)后紅燈閃爍, 循環(huán)次操作,
  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. //===================================函數(shù)聲明===================================================

  26. //===============================================================================================
  27. ////////////////////////////////////////////////////////////////////////////////
  28. // 功能描述 : 主函數(shù)
  29. // 輸入?yún)?shù) : 無
  30. // 返回參數(shù) : 無
  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.     //配置各個參數(shù)
  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;      //數(shù)據(jù)包長度
  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一發(fā)數(shù)據(jù)
  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();  //每次發(fā)送一包數(shù)據(jù)后,進入接收狀態(tài),等待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. // 功能描述 : 無線接收數(shù)據(jù)中斷入口
  131. // 輸入?yún)?shù) : 無
  132. // 返回參數(shù) : 無
  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);   //接收數(shù)據(jù)包
  181.         if((Rxbuffer[2]==2)&&(Rxbuffer[5]==5))
  182.         {
  183.             LEDONBIT(LED1);                                //狀態(tài)指示燈
  184.             DelayMs(60);
  185.             LEDOFFBIT(LED1);                               //狀態(tài)指示燈
  186.             R_Cnt++;
  187.         }
  188.                 LPM3_EXIT;  
  189.     }
  190.     P1IFG=0;
  191. }
  192. ////////////////////////////////////////////////////////////////////////////////
  193. // 功能描述 : 超時定時器
  194. // 輸入?yún)?shù) : 無
  195. // 返回參數(shù) : 無
  196. // 說明     : 用于誤喚醒,或喚醒失敗后超時時間到后重新進入WOR
  197. ////////////////////////////////////////////////////////////////////////////////
  198. #pragma vector = TIMER1_A0_VECTOR
  199. __interrupt void Timer1_A0_ISR()
  200. {
  201.     LEDONBIT(LED3);//發(fā)送狀態(tài)指示燈
  202.     G_LoRaConfig.PayloadLength = 20;
  203.     LSD_RF_SendPacket(TXbuffer);//發(fā)送30個字節(jié)數(shù)據(jù)測試
  204.     T_Cnt++;
  205.     LEDOFFBIT(LED3);//發(fā)送狀態(tài)指示燈
  206.     LPM3_EXIT;
  207. }
復制代碼

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


回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本超碰 | 国产成人99久久亚洲综合精品 | 免费的av | 亚洲视频www| 亚洲视频在线观看 | 欧美国产精品一区二区三区 | 蜜臀网站 | 成人免费一区二区三区牛牛 | 自拍偷拍第一页 | 91小视频| 国产在线观看一区二区 | 天天综合网天天综合色 | 欧美综合国产精品久久丁香 | 欧美精品一区二区免费 | 免费av播放| 日本不卡免费新一二三区 | 亚洲第一在线 | 日韩av成人| 亚洲精品99 | 久久久看 | 国产精品久久久久久吹潮 | 国产ts一区 | 久久精品免费观看 | 久久精品一区二区三区四区 | 国产成人精品网站 | 欧美一级免费 | 在线视频 亚洲 | 国产日韩欧美一区二区 | 亚洲成人蜜桃 | 成人午夜精品一区二区三区 | 9久久婷婷国产综合精品性色 | 嫩草视频在线看 | 国产日韩免费视频 | 中文字幕av在线播放 | 国产精品一区久久久 | 国产ts人妖另类 | 精品在线一区 | 欧美激情综合 | 亚洲36d大奶网 | 大学生a级毛片免费视频 | 在线观看第一区 |