久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5992|回復: 4
收起左側

lora模塊測試板stc15單片機源程序

[復制鏈接]
ID:347412 發表于 2018-6-8 10:25 | 顯示全部樓層 |閱讀模式
Lora模塊點對點通訊測試程序(源碼+固件)
配合51單片機使用。

單片機源程序如下:
  1. /******************************************************************************/
  2. /*                        --安信可科技有限公司--                        */
  3. /*
  4. //  函數說明:main.c                                                              
  5. //  說明:該程序用于測試lora模塊                                                               
  6. //  編寫人員: sky                                                                 
  7. // 編寫日期: 2016-11-24                                                         
  8. // 版本號:V1.0
  9. // 維護日志:
  10. //
  11. //                                                         
  12. */
  13. // 免責聲明:該程序僅供參考學習,若自定義其他功能,請查看參考手冊
  14. // (c) Anxinke Corporation. All rights reserved.                                                               
  15. /******************************************************************************/
  16. #include "typedef.h"
  17. #include "gpio.h"
  18. #include "string.h"
  19. #include "uart.h"
  20. #include "SX1278.h"
  21. //#include "delay.h"

  22. void main(void) {
  23.         unsigned char RF_REC_RLEN_i = 0;
  24.         int flag = 0;
  25.         int led = 0;
  26.         unsigned char recv[30];
  27.         uartInit();
  28.         //uartSendString("READY!\r\n");

  29.         P1M1 = 0X03;
  30.         P1M0 = 0XFC;
  31.         P3M1 &= 0XFC;
  32.         P3M0 |= 0X04;
  33.         //uartSendString("HERE!\r\n");
  34.         register_rf_func(&ctrlTypefunc);
  35.         SX1276Reset();
  36.         SX1276LORA_INT();

  37.         uartSendString("READY!\r\n");
  38.         P32 = 1;
  39.         P17 = 1;
  40.         while (1) {
  41.                 if (P30 == 0 || P31 == 0) {
  42.                         P17 = 1;
  43.                         P32 = 0;
  44.                         SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);

  45.                         uartSendString("hello world!\r\n");
  46.                         FUN_RF_SENDPACKET("ai-thinker", 10);
  47.                         Delay1s(1000);
  48.                         SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
  49.                 } else {
  50.                         P32 = 1;
  51.                         RF_EX0_STATUS = SX1276ReadBuffer( REG_LR_IRQFLAGS);
  52.                         if (RF_EX0_STATUS > 0) {
  53.                                 if ((RF_EX0_STATUS & 0x40) == 0x40) {
  54.                                         //GPIO_OUTPUT_SET(GPIO_ID_PIN(2),0);
  55.                                         CRC_Value = SX1276ReadBuffer( REG_LR_MODEMCONFIG2);
  56.                                         if (CRC_Value & 0x04 == 0x04) {
  57.                                                 SX1276WriteBuffer(REG_LR_FIFOADDRPTR, 0x00);
  58.                                                 SX1278_RLEN = SX1276ReadBuffer(REG_LR_NBRXBYTES);
  59.                                                 //uartSendString("recvieve data num=%d\r\n",SX1278_RLEN);
  60.                                                 lpTypefunc.lpSwitchEnStatus(enOpen);
  61.                                                 lpTypefunc.lpByteWritefunc(0x00);
  62.                                                 for (RF_REC_RLEN_i = 0; RF_REC_RLEN_i < SX1278_RLEN;
  63.                                                                 RF_REC_RLEN_i++) {
  64.                                                         recv[RF_REC_RLEN_i] = lpTypefunc.lpByteReadfunc();
  65.                                                 }
  66.                                                 lpTypefunc.lpSwitchEnStatus(enClose);
  67.                                                 recv[RF_REC_RLEN_i] = '\0';
  68.                                                 if(strncmp(recv,"ai-thinker",10))
  69.                                                 {
  70.                                                 uartSendString("recieve\r\n");
  71.                                                 P17 = 0;
  72.                                                 }
  73.                                         }
  74. //            lpTypefunc.lpRecvDataTousr(recv,SX1278_RLEN);
  75.                                         SX1276LoRaSetOpMode(Stdby_mode);
  76.                                         SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value); //打開發送中斷
  77.                                         SX1276WriteBuffer(REG_LR_HOPPERIOD, PACKET_MIAX_Value);
  78.                                         SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X00);
  79.                                         SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0x00);
  80.                                         SX1276LoRaSetOpMode(Receiver_mode);
  81. //            lpTypefunc.paSwitchCmdfunc(rxOpen);
  82.                                 } else if ((RF_EX0_STATUS & 0x08) == 0x08) {
  83.                                         SX1276LoRaSetOpMode(Stdby_mode);
  84.                                         SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value); //打開發送中斷
  85.                                         SX1276WriteBuffer(REG_LR_HOPPERIOD, PACKET_MIAX_Value);
  86.                                         SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X00);
  87.                                         SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0x00);
  88.                                         SX1276LoRaSetOpMode(Receiver_mode);
  89. //            lpTypefunc.paSwitchCmdfunc(rxOpen);
  90.                                 } else if ((RF_EX0_STATUS & 0x04) == 0x04) {
  91.                                         if ((RF_EX0_STATUS & 0x01) == 0x01) { //表示CAD 檢測到擴頻信號 模塊進入了接收狀態來接收數據
  92.                                                 SX1276LoRaSetOpMode(Stdby_mode);
  93.                                                 SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value); //打開發送中斷
  94.                                                 SX1276WriteBuffer(REG_LR_HOPPERIOD, PACKET_MIAX_Value);
  95.                                                 SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X02);
  96.                                                 SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0x00);
  97.                                                 SX1276LoRaSetOpMode(Receiver_mode);
  98. //              lpTypefunc.paSwitchCmdfunc(rxOpen);
  99.                                         } else {                          
  100.                                                 SX1276LoRaSetOpMode(Stdby_mode);
  101.                                                 SX1276WriteBuffer(REG_LR_IRQFLAGSMASK,
  102.                                                                 IRQN_SEELP_Value);   //打開發送中斷
  103.                                                 SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X00);
  104.                                                 SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0X00);
  105.                                                 SX1276LoRaSetOpMode(Sleep_mode);
  106.                                                 //PA_SEELP_OUT();
  107.                                         }
  108.                                 } else {
  109.                                         SX1276LoRaSetOpMode(Stdby_mode);
  110.                                         SX1276WriteBuffer(REG_LR_IRQFLAGSMASK, IRQN_RXD_Value);  //打開發送中斷
  111.                                         SX1276WriteBuffer(REG_LR_HOPPERIOD, PACKET_MIAX_Value);
  112.                                         SX1276WriteBuffer( REG_LR_DIOMAPPING1, 0X02);
  113.                                         SX1276WriteBuffer( REG_LR_DIOMAPPING2, 0x00);
  114.                                         SX1276LoRaSetOpMode(Receiver_mode);
  115. //            lpTypefunc.paSwitchCmdfunc(rxOpen);
  116.                                 }
  117.                                 RF_REC_RLEN_i = 0;
  118.                                 SX1276WriteBuffer( REG_LR_IRQFLAGS, 0xff);
  119.                                 Delay1s(300);
  120.                         } else {
  121.                                 P17 = 1;
  122.                         }
  123.                 }

  124.         }
  125. }
復制代碼

所有資料51hei提供下載:
lora測試版固件.zip (2.58 KB, 下載次數: 105)
源碼.zip (103.92 KB, 下載次數: 122)


回復

使用道具 舉報

ID:445069 發表于 2019-2-14 11:02 | 顯示全部樓層
收藏了!正在研究 Lora。
回復

使用道具 舉報

ID:55767 發表于 2019-2-28 16:27 | 顯示全部樓層
多謝樓主
回復

使用道具 舉報

ID:631046 發表于 2019-11-3 11:17 | 顯示全部樓層
很好,和STM32的lora程序對比著看,有利于理解lora
回復

使用道具 舉報

ID:670938 發表于 2019-12-24 11:35 | 顯示全部樓層
這是安信可的源碼嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品区二区三区日本 | 美日韩免费 | www.jizzjizz| av在线亚洲天堂 | 成人一区二区三区 | av在线一区二区三区 | 亚洲毛片| 欧美激情国产日韩精品一区18 | 91一区| 久久久久久黄 | 午夜精品视频在线观看 | a成人| 中文日本在线 | v亚洲| 91精品国产一区二区三区香蕉 | 国产又爽又黄的视频 | 国产精品麻 | 亚洲一区在线观看视频 | 国产一区二区电影 | 国产视频不卡一区 | 9久9久9久女女女九九九一九 | 一区二区免费高清视频 | 成人免费网视频 | 天天干天天玩天天操 | 中文字幕第一页在线 | 日韩靠逼 | 日韩另类 | 免费毛片网| 国产精品美女久久久久aⅴ国产馆 | 国产精品无码专区在线观看 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 亚洲精品电影网在线观看 | 久久中文字幕一区 | 国产精品久久久久久久久免费软件 | 国产中文字幕在线 | 日韩欧美国产一区二区 | 成人av在线播放 | 午夜精品一区二区三区在线观看 | 精品国产乱码久久久久久丨区2区 | 成人亚洲精品久久久久软件 | 国内精品免费久久久久软件老师 |