找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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, 下载次数: 702)



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

使用道具 举报

沙发
ID:17204 发表于 2018-6-11 11:59 | 只看该作者
感谢分享!
回复

使用道具 举报

板凳
ID:414127 发表于 2018-10-23 16:56 来自手机 | 只看该作者
謝謝分享
回复

使用道具 举报

地板
ID:297748 发表于 2018-10-23 21:42 | 只看该作者
是数据打包发送吗
回复

使用道具 举报

5#
ID:421762 发表于 2018-11-7 15:09 | 只看该作者
嗨喽,占个楼
回复

使用道具 举报

6#
ID:422444 发表于 2018-11-7 16:38 | 只看该作者
謝謝分享
回复

使用道具 举报

7#
ID:320642 发表于 2018-11-12 16:22 | 只看该作者
是啥啊 没看懂啊
回复

使用道具 举报

8#
ID:427175 发表于 2018-11-15 16:52 | 只看该作者
下载来看看,可能怕没币
回复

使用道具 举报

9#
ID:392949 发表于 2018-11-25 21:28 | 只看该作者
感谢分享
回复

使用道具 举报

10#
ID:411402 发表于 2018-12-5 10:35 | 只看该作者
谢谢分享
回复

使用道具 举报

11#
ID:375137 发表于 2018-12-17 16:51 | 只看该作者
感谢帮顶
回复

使用道具 举报

12#
ID:295481 发表于 2019-1-25 10:05 | 只看该作者

謝謝分享
回复

使用道具 举报

13#
ID:445069 发表于 2019-2-14 11:23 | 只看该作者
谢谢分享,主要想学习下Lora。
回复

使用道具 举报

14#
ID:476928 发表于 2019-3-6 22:24 | 只看该作者
搜藏了额
回复

使用道具 举报

15#
ID:215304 发表于 2019-3-8 17:00 | 只看该作者
谢谢分享,主要想学习下Lora。
回复

使用道具 举报

16#
ID:483932 发表于 2019-3-8 22:46 | 只看该作者
好像学习一下楼主的编程方法!!!
回复

使用道具 举报

17#
ID:445069 发表于 2019-3-12 15:37 | 只看该作者
SX1278 STM32, 这个太给力了。
回复

使用道具 举报

18#
ID:465532 发表于 2019-4-8 06:07 | 只看该作者
感谢分享!黑币不够呀
回复

使用道具 举报

19#
ID:284155 发表于 2019-4-9 10:18 | 只看该作者
感谢分享                  
回复

使用道具 举报

20#
ID:398862 发表于 2019-4-13 16:28 来自手机 | 只看该作者
多谢楼主分享
回复

使用道具 举报

21#
ID:264050 发表于 2019-5-17 10:09 | 只看该作者
我刚看完手册,真的挺不错
回复

使用道具 举报

22#
ID:540854 发表于 2019-6-4 14:56 | 只看该作者
在多加些说明就更好了
回复

使用道具 举报

23#
ID:581024 发表于 2019-7-9 16:20 | 只看该作者
已收藏,谢谢分享
回复

使用道具 举报

24#
ID:584548 发表于 2019-7-15 17:48 | 只看该作者
感谢分享
回复

使用道具 举报

25#
ID:584824 发表于 2019-7-16 08:54 | 只看该作者
这个是stm32和SX1278相连的吗???
回复

使用道具 举报

26#
ID:592590 发表于 2019-7-31 16:10 | 只看该作者
学习学习
回复

使用道具 举报

27#
ID:142699 发表于 2019-7-31 23:00 | 只看该作者
lora确实是挺好用的
回复

使用道具 举报

28#
ID:264586 发表于 2019-9-16 14:15 | 只看该作者
在学习中,多谢楼主分享
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

38#
ID:195496 发表于 2020-4-8 13:38 | 只看该作者
谢谢分享,正在做开发,参考一下
回复

使用道具 举报

39#
ID:284247 发表于 2020-6-1 09:08 | 只看该作者
非常感谢你的分享
回复

使用道具 举报

40#
ID:766950 发表于 2020-6-1 21:33 | 只看该作者
非常感谢你的分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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