標(biāo)題: Lora sx1262測試源碼,基于stm32f103c8t6單片機(jī) [打印本頁]

作者: harry1994    時(shí)間: 2019-5-29 10:44
標(biāo)題: Lora sx1262測試源碼,基于stm32f103c8t6單片機(jī)
Lora sx1262測試源碼,基于stm32f103c8t6,按照程序接口定義接線,下載程序進(jìn)去即可進(jìn)行無線數(shù)據(jù)收發(fā)

單片機(jī)源程序如下:
  1. /**********************(C) COPYRIGHT tongxinmao.com*****************************
  2. * 文件名                        : main.c
  3. * 描述                                : 主文件        STM32F103C8T6+RF(SI443 SI4463 SX1278擴(kuò)頻)+OLED+串口+按鍵+溫濕度傳感器
  4. * 歷史記錄          : 暫無
  5. * 使用說明                        :按鍵S1 短按切換無線是否應(yīng)答,長按清空收發(fā)計(jì)數(shù)  S2:單次發(fā)送  S3:連續(xù)發(fā)送50*n次
  6.                                           發(fā)送的數(shù)據(jù)為溫濕度數(shù)據(jù),接收方收到后顯示
  7. ********************************************************************************/

  8. /*--------------------------- 頭文件包含 --------------------------------------*/
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12. #include "main.h"
  13. #include "function.h"
  14. #include "oled.h"
  15. #include "usart1.h"
  16. #include "gpio.h"
  17. #include "Delay.h"
  18. #include "sx1262.h"
  19. #include "rf.h"


  20. /*-----------------------------------------------------------------------------*/
  21. /*
  22. * #pragma diag_suppress 77,550,1294,1295
  23. * #pragma diag_suppress 870
  24. */
  25. #pragma diag_suppress 870
  26. /*
  27. * ------------------------------------------------------------------------
  28. * ------------------------------------------------------------------------
  29. * --------------------         宏定義              ------------------------------
  30. * ------------------------------------------------------------------------
  31. * ------------------------------------------------------------------------
  32. */

  33. #define CMD_TEMP_HUM        1
  34. #define CMD_ACK                        2


  35. /*
  36. * ------------------------------------------------------------------------
  37. * ------------------------------------------------------------------------
  38. * --------------------       變量定義              ------------------------------
  39. * ------------------------------------------------------------------------
  40. * ------------------------------------------------------------------------
  41. */


  42. /*
  43. * ------------------------------------------------------------------------
  44. * ------------------------------------------------------------------------
  45. * --------------------       函數(shù)聲明              ------------------------------
  46. * ------------------------------------------------------------------------
  47. * ------------------------------------------------------------------------
  48. */





  49. void frameProcess( u8 *buf, u8 size )
  50. {
  51.         u8        cmd        = buf[0];
  52.         u8        len        = buf[1];

  53.         switch ( cmd )
  54.         {
  55.         case CMD_TEMP_HUM:
  56.                 if ( rfAck )
  57.                 {
  58.                         sendBuf[0]        = CMD_ACK;
  59.                         sendBuf[1]        = 0;
  60.                         RFSendData( sendBuf, 2 );
  61.                         msg( "回復(fù)應(yīng)答..." );
  62.                 }
  63.                 /* 顯示溫濕度數(shù)據(jù) */
  64.                 if ( len == 4 )
  65.                 {
  66.                         memcpy( &temp, buf + 2, 2 );
  67.                         memcpy( &hum, buf + 4, 2 );
  68.                         msg( "收到溫濕度數(shù)據(jù)" );
  69.                 }
  70.                 break;

  71.         case CMD_ACK:
  72.                 /* 屏幕顯示應(yīng)答成功 */

  73.                 msg( "收到應(yīng)答" );
  74.                 break;

  75.         default:
  76.                 break;
  77.         }
  78. }




  79. /**************************************************************
  80. * 函數(shù)名  : main()
  81. * 描述    : 主函數(shù)
  82. *************************************************************/
  83. int main( void )
  84. {
  85.         /* --配置系統(tǒng)主頻為72MHz */
  86.         SystemInit();
  87.         Delay_InitConfig( 72 );
  88.         GPIOInit();            //GPIO初始化
  89.         OLED_Init();        //OLED初始化
  90.         Uart1Init();        //串口初始化用于輸出調(diào)試信息 9600bps 8N1
  91.         printf("SX1262-SMT  RF  TEST \r\n");

  92.         RFInit();         //射頻模塊初始化
  93.         //RFRxMode();         //進(jìn)入接收模式
  94.         msg( "system start" );
  95.     getTempHum();  //獲取溫濕度數(shù)據(jù)
  96.          
  97.         while ( 1 )
  98.         {
  99.                 int len;

  100.                 keyProcess();  //按鍵檢測處理
  101.             //led_blink();   //led運(yùn)行燈閃爍

  102.                 len = RFRevData( revBuf );          //接收無線數(shù)據(jù)
  103.                 if ( len > 0 )
  104.                 {
  105.                         frameProcess( revBuf, len ); //數(shù)據(jù)處理
  106.                 }

  107.                 if(rfContinueSend())
  108.                 {       
  109.                         if(Sx1262_Flag.RFCtrl.SpreadingFactor <= SF7)
  110.                          Delay_ms( 500 );               
  111.       else        if(Sx1262_Flag.RFCtrl.SpreadingFactor <= SF9)
  112.                                 Delay_ms( 1000 );               
  113.       else       
  114.                                 Delay_ms( 6000 );
  115.                 }
  116.                 OledDisplay();        //刷新OLED顯示
  117.         }
  118. }


  119. /*
  120. * ------------------------------------------------------------------------
  121. * ------------------------------------------------------------------------
  122. * --------------------     公有函數(shù)定義            ------------------------------
  123. * ------------------------------------------------------------------------
  124. * ------------------------------------------------------------------------
  125. */




  126. /* end of main.c -------------------------------------------------------------*/
復(fù)制代碼

所有資料51hei提供下載:
STM32_SX1262.7z (204.37 KB, 下載次數(shù): 341)




作者: 一只好男孩兒    時(shí)間: 2019-6-12 18:01
請問sx1678和sx1262的開發(fā)大嗎
作者: mmy1219    時(shí)間: 2019-6-20 16:47
這么好的資料怎么沒人頂???
作者: sswfcsf    時(shí)間: 2019-6-24 11:35
目前還是窮光蛋,沒有黑幣來下載,還是要頂一下!
作者: xiaokancheng    時(shí)間: 2019-7-9 16:25
已收藏,頂一頂
作者: aimripeky    時(shí)間: 2019-7-13 10:07
太好了 有用
作者: qq2369603389    時(shí)間: 2019-7-22 19:48
很想下載回來看看,可惜分不夠用,唉愁啊
作者: 784104920    時(shí)間: 2019-8-6 09:56
樓主有電路圖嗎
作者: @guo    時(shí)間: 2019-9-29 11:04
樓主用的1262驅(qū)動(dòng)是在官網(wǎng)下載的嗎
作者: leo2002zhang    時(shí)間: 2019-10-10 16:08
謝謝樓主,正在寫sx1268的程序。
作者: sbsbso    時(shí)間: 2020-2-2 18:39
多謝 ,學(xué)習(xí)了

作者: yiwen_yang    時(shí)間: 2020-2-10 12:55
樓主威武,謝謝樓主
作者: jiajia86    時(shí)間: 2020-3-9 14:42
學(xué)習(xí)一下lora,謝謝分享
作者: iam00000000    時(shí)間: 2020-3-20 11:31
學(xué)習(xí)一下,感謝樓主分享
作者: leo2002zhang    時(shí)間: 2020-3-28 12:26
謝謝樓主。
作者: byte    時(shí)間: 2020-3-28 19:01
為什么我總是在busy引腳這里循環(huán)???不知道樓主有沒有遇到這種情況,就算是把PB2引腳拉低都不能正常檢測到。
如下循環(huán):
  1. void check_busy(void)
  2. {
  3.         Sx1262_Flag.busy_timeout_cnt = 0;                                                               
  4.         Sx1262_Flag.busy_timeout = 0;                       
  5.         while(RF_BUSY())
  6.         {
  7.                 if(Sx1262_Flag.busy_timeout)                       
  8.                 {
  9.                         SetStandby(0);//0:STDBY_RC; 1:STDBY_XOSC
  10.                         reset_sx1262();                //reset RF
  11.                         sx1262_Config();
  12.                         Rx_Init();
  13.                         break;               
  14.                 }
  15.         }
  16. }
復(fù)制代碼

作者: zero1118    時(shí)間: 2020-3-30 16:19
非常感謝。正好要用sx1262
作者: cjp88811283    時(shí)間: 2020-4-20 12:21
樓主用的1262驅(qū)動(dòng)是在官網(wǎng)下載的嗎?
作者: q294877228    時(shí)間: 2020-10-14 22:54
為什么我用你的歷程發(fā)送數(shù)據(jù),DIO1沒有發(fā)生中斷。發(fā)送數(shù)據(jù)應(yīng)該會(huì)有發(fā)送完成中斷的呀,請問下會(huì)是什么原因?
讀寄存器可以判斷是正常的
怎么判斷讀寫命令是否正常?
作者: lp667257    時(shí)間: 2021-7-13 16:49
q294877228 發(fā)表于 2020-10-14 22:54
為什么我用你的歷程發(fā)送數(shù)據(jù),DIO1沒有發(fā)生中斷。發(fā)送數(shù)據(jù)應(yīng)該會(huì)有發(fā)送完成中斷的呀,請問下會(huì)是什么原因? ...

我也是一樣的問題!你解決了嗎?
作者: dcc024    時(shí)間: 2022-5-3 08:51
不知道有用沒用,先頂一下
作者: jach09    時(shí)間: 2022-12-13 19:50
程序編譯通過,明天找一個(gè)板子燒寫測試一下。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1