找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24558|回复: 47
打印 上一主题 下一主题
收起左侧

STM32实现SX1278 LORA通信源码与资料

  [复制链接]
跳转到指定楼层
楼主
一个特别不错的STM32实现LORA通信的资料
SX1278芯片的中文资料下载:http://www.51hei.com/bbs/dpj-119513-1.html

简单基本收发功能测试,大部分照搬原参考程序,增加部分注释。
LORA只是工程一部分,现并未完善,跟LORA不相关的可直接忽视。

A板:收到数据后 回传ABCDE;
B板:收到数据后 回传VHELL!

硬件注意:只需最小系统,串口测试使用USART1;晶振都为外部12M..

仅供参考!



单片机源程序如下:
  1. #include "X_02.h"

  2. u32                 error0,error_i,crc,EMM,BE_EN,xx0;
  3. u32                 BE_EN0,BE_EN2;
  4. int main(void)
  5. {                                 
  6.         init();
  7.         gSendBuffer[0] = *"V";
  8.                 gSendBuffer[1] = *"H";
  9.                 gSendBuffer[2] = *"e";
  10.                 gSendBuffer[3] = *"l";
  11.                 gSendBuffer[4] = *"l";
  12.                 gSendBuffer[5] = *"!";
  13.                 gSendBuffer[6] = *" ";
  14.         while(1)
  15.         {               
  16.                 LORA_BOX();    //处理空闲模式,发射接收都在里面,主要的就是这个函数
  17.                 if(vvi502%40==0)        
  18.                 {
  19.                         vvi502++;
  20.                         EN_ROLA=1;                         //发射
  21.                         TES0=1;
  22.                         delay_ms(40);
  23.                         TES0=0;
  24.                 }
  25.         }
  26. }
  27. void init(void)
  28. {
  29.         Stm32_Clock_Init(SYSCLK_i/HSE_i);                //系统时钟设置          //12MHz*6=72M
  30.         GPIOX_init();                          //初始化通用硬件接口
  31.         delay_ms(200);
  32. //        ATMCxx_init();
  33.         LORA_int();
  34. //        DMA_init();                           //注意DMA与ADC初始顺序,否则规则传输顺序有误!?
  35. //        ADC_init();        
  36.         EXTIX_Init();
  37.         PVD_init();
  38.         Ci();
  39.         TIM2_Int_Init(20,719);                         //1us/data 200us
  40.         TIM3_Int_Init(64000,35);                //500ns/data 32ms         //预分频器35,重装载64000,溢出 32MS               
  41. }
  42. void GPIOX_init(void)
  43. {               
  44.         //AFIO寄存器操作异于其它寄存器;配置某位 其余位默认0配置
  45.         //关闭JTAG/SWD;PB3,4;PA13,14,15;PE2,3,4,5,6;引脚重定义,I/O可用;TIME3_CHX1~3完全重映射;
  46.         RCC->APB2ENR|=1<<0;//使能AFIO时钟
  47.         AFIO->MAPR&=0x00fff3ff;
  48.         AFIO->MAPR|=0x04000c00;
  49.         delay_us(20);         
  50.         RCC->APB2ENR&=~(1<<0);

  51. /*        RCC->APB2ENR|=1<<2;            //使能PORTA时钟 设置PA13/14/15 上拉输入  PA2/3 推挽输出 2M .max         
  52.         GPIOA->CRH&=0X000FFFFF;        
  53.         GPIOA->CRH|=0X88800000;
  54.         GPIOA->CRL&=0XFFFF00FF;        
  55.         GPIOA->CRL|=0X00002200;
  56.         
  57.         RCC->APB2ENR|=1<<3;            //使能PORTB时钟 设置PB3/4/5 上拉输入  PB0/1/6/7/12~15 推挽输出 2M .max         
  58.         GPIOB->CRH&=0X0000FFFF;        
  59.         GPIOB->CRH|=0X22220000;
  60.         GPIOB->CRL&=0X00000F00;        
  61.         GPIOB->CRL|=0X22888022;
  62.         
  63.         RCC->APB2ENR|=1<<4;            //使能PORTC时钟 设置PC12 上拉输入  P4/5 推挽输出 2M .max         
  64.         GPIOC->CRH&=0XFFF0FFFF;        
  65.         GPIOC->CRH|=0X00080000;
  66.         GPIOC->CRL&=0XFF00FFFF;        
  67.         GPIOC->CRL|=0X00220000;
  68.         
  69.         RCC->APB2ENR|=1<<5;            //使能PORTD时钟 设置PD2 上拉输入  
  70.         GPIOD->CRL&=0XFFFFF0FF;        
  71.         GPIOD->CRL|=0X00000800;*/
  72.         
  73.         RCC->APB2ENR|=1<<3;            //使能PORTB时钟 设置PB3/4/5 上拉输入  PB0/1/6/7/12~15 推挽输出 2M .max         
  74.         GPIOB->CRL&=0X0FFFFFFF;        
  75.         GPIOB->CRL|=0X20000000;
  76.         
  77.         TES0=0;
  78.         BE_i=0;
  79.         SK1=0;
  80.         SK2=0;
  81.         DOUT1=0;
  82.         DOUT2=0;
  83.         DOUT3=0;
  84.         DOUT4=0;
  85.         DOUT5=0;
  86.         DOUT6=0;
  87.         DOUT7=0;
  88.         DOUT8=0;
  89. }
  90. void PVD_init(void)//低压中断设置
  91. {
  92.         RCC->APB1ENR|=1<<28;    //使能PWR时钟
  93.         EXTI->IMR|=1<<16;                        //使能EXTI线16:PVD中断
  94. //        EXTI->EMR|=1<<16;                        //使能EXTI线16:PVD事件
  95.         EXTI->RTSR|=1<<16;                        //使能EXTI线16:PVD上升沿中断    WHY!!
  96. //        EXTI->FTSR|=1<<16;                //使能EXTI线16:PVD下降沿中断
  97.         PWR->CR|=0X90;                                //使能PVD 监测电压:2.6V
  98.         MY_NVIC_Init(1,1,PVD_IRQChannel,2);//抢占1,子优先级1,组2        
  99. }
  100.         
  101. void BOX(void)
  102. {}
  103. void ERR_x(void)
  104. {
  105.         if(error0||error_i)
  106.         {        
  107.                 EMM++;                                
  108.                 if(EMM%10)
  109.                 {                                       
  110.                         BE_EN=1;                                
  111.                 }
  112.                 else
  113.                 {
  114.                     BE_EN=0;
  115.                 }
  116.                 if(EMM>4)
  117.                 {
  118.                         EMM=0;
  119.                         BE_EN=0;
  120.                         error0=0;
  121. ……………………

  122. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
LORA FOR STM32_TES1.1.7z (2.56 MB, 下载次数: 712)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏19 分享淘帖 顶 踩
回复

使用道具 举报

72#
无效楼层,该帖已经被删除
71#
无效楼层,该帖已经被删除
70#
ID:399111 发表于 2024-4-22 15:31 | 只看该作者
我想问,,这个怎么实现一对多配对????
回复

使用道具 举报

69#
无效楼层,该帖已经被删除
68#
无效楼层,该帖已经被删除
67#
ID:276761 发表于 2024-1-2 23:11 | 只看该作者
想学习下Lora
回复

使用道具 举报

66#
ID:285132 发表于 2024-1-2 21:30 | 只看该作者
不带中文手册!!!!!
回复

使用道具 举报

65#
无效楼层,该帖已经被删除
64#
无效楼层,该帖已经被删除
63#
无效楼层,该帖已经被删除
62#
无效楼层,该帖已经被删除
61#
无效楼层,该帖已经被删除
60#
无效楼层,该帖已经被删除
59#
无效楼层,该帖已经被删除
58#
ID:246744 发表于 2021-11-2 23:54 | 只看该作者
激动,再次感谢楼主
回复

使用道具 举报

57#
ID:246744 发表于 2021-11-2 23:54 | 只看该作者

好的东西,多谢分享。楼主给力~~~
回复

使用道具 举报

56#
ID:245053 发表于 2021-7-15 13:57 | 只看该作者
可不可以分享一下电路原理图?!感谢
回复

使用道具 举报

55#
ID:245053 发表于 2021-7-15 13:56 | 只看该作者
测试板的电路原理图呢,留半截不分享?!
回复

使用道具 举报

54#
无效楼层,该帖已经被删除
53#
无效楼层,该帖已经被删除
52#
无效楼层,该帖已经被删除
51#
无效楼层,该帖已经被删除
50#
ID:811342 发表于 2020-10-18 21:49 | 只看该作者
lmusic 发表于 2020-2-2 11:35
官方只给1276没有1278原理图

sx1276和sx1278都一样驱动都是通用的
回复

使用道具 举报

49#
无效楼层,该帖已经被删除
48#
无效楼层,该帖已经被删除
47#
ID:766950 发表于 2020-6-1 21:33 | 只看该作者
非常感谢你的分享
回复

使用道具 举报

46#
无效楼层,该帖已经被删除
45#
ID:284247 发表于 2020-6-1 09:08 | 只看该作者
非常感谢你的分享
回复

使用道具 举报

44#
无效楼层,该帖已经被删除
43#
ID:195496 发表于 2020-4-8 13:38 | 只看该作者
谢谢分享,正在做开发,参考一下
回复

使用道具 举报

42#
ID:721587 发表于 2020-4-3 12:54 | 只看该作者
谢谢分享
回复

使用道具 举报

41#
ID:347467 发表于 2020-3-9 14:32 | 只看该作者
谢谢分享。
回复

使用道具 举报

40#
ID:420104 发表于 2020-2-24 22:22 | 只看该作者
感谢分享
回复

使用道具 举报

39#
ID:689403 发表于 2020-2-8 17:49 | 只看该作者
下载研究lora谢谢
回复

使用道具 举报

38#
ID:689403 发表于 2020-2-2 11:35 | 只看该作者
官方只给1276没有1278原理图
回复

使用道具 举报

37#
ID:663293 发表于 2019-12-13 15:56 | 只看该作者
如果能说明下各个管脚的作用就更好了
回复

使用道具 举报

36#
ID:661107 发表于 2019-12-10 22:50 | 只看该作者
感謝分享
回复

使用道具 举报

35#
ID:655508 发表于 2019-12-3 21:50 | 只看该作者
感谢分享
回复

使用道具 举报

34#
ID:294886 发表于 2019-10-29 11:07 | 只看该作者
谢谢分享!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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