找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6575|回复: 21
收起左侧

Lora sx1262测试源码,基于stm32f103c8t6单片机

  [复制链接]
ID:537806 发表于 2019-5-29 10:44 | 显示全部楼层 |阅读模式
Lora sx1262测试源码,基于stm32f103c8t6,按照程序接口定义接线,下载程序进去即可进行无线数据收发

单片机源程序如下:
  1. /**********************(C) COPYRIGHT tongxinmao.com*****************************
  2. * 文件名                        : main.c
  3. * 描述                                : 主文件        STM32F103C8T6+RF(SI443 SI4463 SX1278扩频)+OLED+串口+按键+温湿度传感器
  4. * 历史记录          : 暂无
  5. * 使用说明                        :按键S1 短按切换无线是否应答,长按清空收发计数  S2:单次发送  S3:连续发送50*n次
  6.                                           发送的数据为温湿度数据,接收方收到后显示
  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. * --------------------       函数声明              ------------------------------
  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( "回复应答..." );
  62.                 }
  63.                 /* 显示温湿度数据 */
  64.                 if ( len == 4 )
  65.                 {
  66.                         memcpy( &temp, buf + 2, 2 );
  67.                         memcpy( &hum, buf + 4, 2 );
  68.                         msg( "收到温湿度数据" );
  69.                 }
  70.                 break;

  71.         case CMD_ACK:
  72.                 /* 屏幕显示应答成功 */

  73.                 msg( "收到应答" );
  74.                 break;

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




  79. /**************************************************************
  80. * 函数名  : main()
  81. * 描述    : 主函数
  82. *************************************************************/
  83. int main( void )
  84. {
  85.         /* --配置系统主频为72MHz */
  86.         SystemInit();
  87.         Delay_InitConfig( 72 );
  88.         GPIOInit();            //GPIO初始化
  89.         OLED_Init();        //OLED初始化
  90.         Uart1Init();        //串口初始化用于输出调试信息 9600bps 8N1
  91.         printf("SX1262-SMT  RF  TEST \r\n");

  92.         RFInit();         //射频模块初始化
  93.         //RFRxMode();         //进入接收模式
  94.         msg( "system start" );
  95.     getTempHum();  //获取温湿度数据
  96.          
  97.         while ( 1 )
  98.         {
  99.                 int len;

  100.                 keyProcess();  //按键检测处理
  101.             //led_blink();   //led运行灯闪烁

  102.                 len = RFRevData( revBuf );          //接收无线数据
  103.                 if ( len > 0 )
  104.                 {
  105.                         frameProcess( revBuf, len ); //数据处理
  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. * --------------------     公有函数定义            ------------------------------
  123. * ------------------------------------------------------------------------
  124. * ------------------------------------------------------------------------
  125. */




  126. /* end of main.c -------------------------------------------------------------*/
复制代码

所有资料51hei提供下载:
STM32_SX1262.7z (204.37 KB, 下载次数: 334)

评分

参与人数 1黑币 +5 收起 理由
言西 + 5

查看全部评分

回复

使用道具 举报

ID:580238 发表于 2020-3-28 19:01 | 显示全部楼层
为什么我总是在busy引脚这里循环???不知道楼主有没有遇到这种情况,就算是把PB2引脚拉低都不能正常检测到。
如下循环:
  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. }
复制代码
回复

使用道具 举报

ID:559879 发表于 2019-6-12 18:01 | 显示全部楼层
请问sx1678和sx1262的开发大吗
回复

使用道具 举报

ID:568055 发表于 2019-6-20 16:47 | 显示全部楼层
这么好的资料怎么没人顶啊???
回复

使用道具 举报

ID:570686 发表于 2019-6-24 11:35 | 显示全部楼层
目前还是穷光蛋,没有黑币来下载,还是要顶一下!
回复

使用道具 举报

ID:581024 发表于 2019-7-9 16:25 | 显示全部楼层
已收藏,顶一顶
回复

使用道具 举报

ID:477974 发表于 2019-7-13 10:07 | 显示全部楼层
太好了 有用
回复

使用道具 举报

ID:588333 发表于 2019-7-22 19:48 | 显示全部楼层
很想下载回来看看,可惜分不够用,唉愁啊
回复

使用道具 举报

ID:595937 发表于 2019-8-6 09:56 | 显示全部楼层
楼主有电路图吗
回复

使用道具 举报

ID:609438 发表于 2019-9-29 11:04 | 显示全部楼层
楼主用的1262驱动是在官网下载的吗
回复

使用道具 举报

ID:428438 发表于 2019-10-10 16:08 | 显示全部楼层
谢谢楼主,正在写sx1268的程序。
回复

使用道具 举报

ID:502931 发表于 2020-2-2 18:39 | 显示全部楼层
多谢 ,学习了
回复

使用道具 举报

ID:342057 发表于 2020-2-10 12:55 | 显示全部楼层
楼主威武,谢谢楼主
回复

使用道具 举报

ID:347467 发表于 2020-3-9 14:42 | 显示全部楼层
学习一下lora,谢谢分享
回复

使用道具 举报

ID:138887 发表于 2020-3-20 11:31 | 显示全部楼层
学习一下,感谢楼主分享
回复

使用道具 举报

ID:428438 发表于 2020-3-28 12:26 | 显示全部楼层
谢谢楼主。
回复

使用道具 举报

ID:201953 发表于 2020-3-30 16:19 | 显示全部楼层
非常感谢。正好要用sx1262
回复

使用道具 举报

ID:323651 发表于 2020-4-20 12:21 | 显示全部楼层
楼主用的1262驱动是在官网下载的吗?
回复

使用道具 举报

ID:99858 发表于 2020-10-14 22:54 | 显示全部楼层
为什么我用你的历程发送数据,DIO1没有发生中断。发送数据应该会有发送完成中断的呀,请问下会是什么原因?
读寄存器可以判断是正常的
怎么判断读写命令是否正常?
回复

使用道具 举报

ID:951184 发表于 2021-7-13 16:49 | 显示全部楼层
q294877228 发表于 2020-10-14 22:54
为什么我用你的历程发送数据,DIO1没有发生中断。发送数据应该会有发送完成中断的呀,请问下会是什么原因? ...

我也是一样的问题!你解决了吗?
回复

使用道具 举报

ID:216265 发表于 2022-5-3 08:51 | 显示全部楼层
不知道有用没用,先顶一下
回复

使用道具 举报

ID:219315 发表于 2022-12-13 19:50 | 显示全部楼层
程序编译通过,明天找一个板子烧写测试一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表