找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22053|回復: 47
收起左側

STM32實現SX1278 LORA通信源碼與資料

  [復制鏈接]
ID:334487 發(fā)表于 2018-5-20 21:43 | 顯示全部樓層 |閱讀模式
一個特別不錯的STM32實現LORA通信的資料
SX1278芯片的中文資料下載:http://www.torrancerestoration.com/bbs/dpj-119513-1.html

簡單基本收發(fā)功能測試,大部分照搬原參考程序,增加部分注釋。
LORA只是工程一部分,現并未完善,跟LORA不相關的可直接忽視。

A板:收到數據后 回傳ABCDE;
B板:收到數據后 回傳VHELL!

硬件注意:只需最小系統,串口測試使用USART1;晶振都為外部12M..

僅供參考!

0.png

單片機源程序如下:
  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();    //處理空閑模式,發(fā)射接收都在里面,主要的就是這個函數
  17.                 if(vvi502%40==0)        
  18.                 {
  19.                         vvi502++;
  20.                         EN_ROLA=1;                         //發(fā)射
  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初始順序,否則規(guī)則傳輸順序有誤。
  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 監(jiān)測電壓:2.6V
  98.         MY_NVIC_Init(1,1,PVD_IRQChannel,2);//搶占1,子優(yōu)先級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)



回復

使用道具 舉報

ID:17204 發(fā)表于 2018-6-11 11:59 | 顯示全部樓層
感謝分享!
回復

使用道具 舉報

ID:414127 發(fā)表于 2018-10-23 16:56 來自手機 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:297748 發(fā)表于 2018-10-23 21:42 | 顯示全部樓層
是數據打包發(fā)送嗎
回復

使用道具 舉報

ID:421762 發(fā)表于 2018-11-7 15:09 | 顯示全部樓層
嗨嘍,占個樓
回復

使用道具 舉報

ID:422444 發(fā)表于 2018-11-7 16:38 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:320642 發(fā)表于 2018-11-12 16:22 | 顯示全部樓層
是啥啊 沒看懂啊
回復

使用道具 舉報

ID:427175 發(fā)表于 2018-11-15 16:52 | 顯示全部樓層
下載來看看,可能怕沒幣
回復

使用道具 舉報

ID:392949 發(fā)表于 2018-11-25 21:28 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:411402 發(fā)表于 2018-12-5 10:35 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:375137 發(fā)表于 2018-12-17 16:51 | 顯示全部樓層
感謝幫頂
回復

使用道具 舉報

ID:295481 發(fā)表于 2019-1-25 10:05 | 顯示全部樓層

謝謝分享
回復

使用道具 舉報

ID:445069 發(fā)表于 2019-2-14 11:23 | 顯示全部樓層
謝謝分享,主要想學習下Lora。
回復

使用道具 舉報

ID:476928 發(fā)表于 2019-3-6 22:24 | 顯示全部樓層
搜藏了額
回復

使用道具 舉報

ID:215304 發(fā)表于 2019-3-8 17:00 | 顯示全部樓層
謝謝分享,主要想學習下Lora。
回復

使用道具 舉報

ID:483932 發(fā)表于 2019-3-8 22:46 | 顯示全部樓層
好像學習一下樓主的編程方法!!
回復

使用道具 舉報

ID:445069 發(fā)表于 2019-3-12 15:37 | 顯示全部樓層
SX1278 STM32, 這個太給力了。
回復

使用道具 舉報

ID:465532 發(fā)表于 2019-4-8 06:07 | 顯示全部樓層
感謝分享!黑幣不夠呀
回復

使用道具 舉報

ID:284155 發(fā)表于 2019-4-9 10:18 | 顯示全部樓層
感謝分享                  
回復

使用道具 舉報

ID:398862 發(fā)表于 2019-4-13 16:28 來自手機 | 顯示全部樓層
多謝樓主分享
回復

使用道具 舉報

ID:264050 發(fā)表于 2019-5-17 10:09 | 顯示全部樓層
我剛看完手冊,真的挺不錯
回復

使用道具 舉報

ID:540854 發(fā)表于 2019-6-4 14:56 | 顯示全部樓層
在多加些說明就更好了
回復

使用道具 舉報

ID:581024 發(fā)表于 2019-7-9 16:20 | 顯示全部樓層
已收藏,謝謝分享
回復

使用道具 舉報

ID:584548 發(fā)表于 2019-7-15 17:48 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:584824 發(fā)表于 2019-7-16 08:54 | 顯示全部樓層
這個是stm32和SX1278相連的嗎???
回復

使用道具 舉報

ID:592590 發(fā)表于 2019-7-31 16:10 | 顯示全部樓層
學習學習
回復

使用道具 舉報

ID:142699 發(fā)表于 2019-7-31 23:00 | 顯示全部樓層
lora確實是挺好用的
回復

使用道具 舉報

ID:264586 發(fā)表于 2019-9-16 14:15 | 顯示全部樓層
在學習中,多謝樓主分享
回復

使用道具 舉報

ID:294886 發(fā)表于 2019-10-29 11:07 | 顯示全部樓層
謝謝分享!
回復

使用道具 舉報

ID:655508 發(fā)表于 2019-12-3 21:50 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:661107 發(fā)表于 2019-12-10 22:50 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:663293 發(fā)表于 2019-12-13 15:56 | 顯示全部樓層
如果能說明下各個管腳的作用就更好了
回復

使用道具 舉報

ID:689403 發(fā)表于 2020-2-2 11:35 | 顯示全部樓層
官方只給1276沒有1278原理圖
回復

使用道具 舉報

ID:689403 發(fā)表于 2020-2-8 17:49 | 顯示全部樓層
下載研究lora謝謝
回復

使用道具 舉報

ID:420104 發(fā)表于 2020-2-24 22:22 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:347467 發(fā)表于 2020-3-9 14:32 | 顯示全部樓層
謝謝分享。
回復

使用道具 舉報

ID:721587 發(fā)表于 2020-4-3 12:54 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:195496 發(fā)表于 2020-4-8 13:38 | 顯示全部樓層
謝謝分享,正在做開發(fā),參考一下
回復

使用道具 舉報

ID:284247 發(fā)表于 2020-6-1 09:08 | 顯示全部樓層
非常感謝你的分享
回復

使用道具 舉報

ID:766950 發(fā)表于 2020-6-1 21:33 | 顯示全部樓層
非常感謝你的分享
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表