找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LORA网关+子设备STM32代码

[复制链接]
跳转到指定楼层
楼主
ID:491635 发表于 2019-3-15 19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LORA 网关 代码

单片机源程序如下:
  1. /******************************************************************
  2. * 文件:main.c
  3. * 功能:主函数入口
  4. * 日期:2018-02-16
  5. * 作者:zx
  6. * 版本:Ver.1.0 | 最初版本
  7. *
  8. * Copyright (C) 2017 zx. All rights reserved.
  9. *******************************************************************/
  10. #include "stdio.h"
  11. #include "string.h"
  12. #include "DELAY/Delay.h"
  13. #include "ADC/ADC.h"
  14. #include "LED/LED.h"
  15. #include "NVIC/NVIC.h"
  16. #include "IIC/IIC.h"
  17. #include "OLED/OLED.h"
  18. #include "UART/uart.h"
  19. #include "NetWork.h"
  20. #include "TLink.h"
  21. #include "SPIx/SPIx.h"
  22. #include "SX1278/SX1278.h"
  23. #include "NodeBus.h"

  24. DeviceSta_Strcture device = {0};
  25. DeviceBlock DeviceBlock_StructureArray[2];

  26. int main(void)
  27. {
  28.     u8 i = 0;

  29.         /*初始化各外设*/
  30.     initSysTick();  
  31.         initADC();
  32.     initUART();
  33.     initUART2();
  34.         initLED();
  35.         initIIC();
  36.     initOLED();
  37.     initSPIx(SPI2);
  38.     initSX1278();
  39.        
  40.         initNVIC(NVIC_PriorityGroup_2);//开启UART2的接收和空闲中断

  41.         formatScreen(0x00);//清屏

  42.     /*打印ESP8266启动信息到OLED*/
  43.     if(initESP8266()!=0)
  44.     {
  45.         showString(0,0,"init ok!",FONT_16_EN);
  46.     }else
  47.     {
  48.         showString(0,0,"init error!",FONT_16_EN);
  49.     }
  50.     if(connectAP(SSID,PWD)!=0)
  51.     {
  52.         showString(0,2,"conn ap ok!",FONT_16_EN);
  53.     }else
  54.     {
  55.         showString(0,2,"con ap error!",FONT_16_EN);
  56.     }
  57.     if(connectTlink()!=0)
  58.     {
  59.         showString(0,4,"conn TLink ok!",FONT_16_EN);
  60.     }else
  61.     {
  62.         showString(0,4,"conn TLink no!",FONT_16_EN);
  63.     }

  64.     Delay_ms(1000);//让数据保持一段时间
  65.     formatScreen(0x00);
  66.     showCNString(32,0,"风媒电子",FONT_16_CN);
  67.     showString(0,2,"Hum :",FONT_16_EN);
  68.     showString(0,4,"Temp:",FONT_16_EN);
  69.     showString(0,6,"Lux :",FONT_16_EN);
  70.     while (1)
  71.     {
  72.         /*数据采集显示*/
  73.         if(++i>30)
  74.         {
  75.             i = 0;

  76.                         sendMasterAsk(SLAVE1_ADDR,OP_R_SENSOR,PRAM_R_ALL);//主机发送指令
  77.                         receiveSlaveAck(SLAVE1_ADDR,OP_R_SENSOR,PRAM_R_ALL,DeviceBlock_StructureArray);//接收从机数据                       
  78.                         Delay_ms(100);
  79.                         while(receiveSlaveAck(SLAVE1_ADDR,OP_R_SENSOR,PRAM_R_ALL,DeviceBlock_StructureArray)!=FRAME_OK && ++i<10)//等待从机响应
  80.                         {
  81.                                 Delay_ms(100);

  82.                         }
  83.                         i = 0;


  84.             device.Humidity = DeviceBlock_StructureArray[SLAVE1_ADDR].Humidity;
  85.             device.Temperature = DeviceBlock_StructureArray[SLAVE1_ADDR].Temperature;
  86.             device.Lux = DeviceBlock_StructureArray[SLAVE1_ADDR].Lux;

  87.                         showNumber(40,2,device.Humidity,DEC,3,FONT_16_EN);
  88.             showNumber(40,4,device.Temperature,DEC,3,FONT_16_EN);
  89.             showNumber(40,6,device.Lux,DEC,4,FONT_16_EN);
  90.             sendDeviceStatus(&device);
  91.         }

  92.                 toggleLED();
  93.                 Delay_ms(100);
  94.     }
  95. }
复制代码

所有资料51hei提供下载:
31_LoRa网关.7z (211.89 KB, 下载次数: 49)


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

使用道具 举报

沙发
ID:1 发表于 2019-3-16 00:56 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

板凳
ID:494205 发表于 2019-3-19 20:27 | 只看该作者
请问,这个工程lora网关部分所用的开发板,是自己做的电路板,还是哪种型号的开发板
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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