[DemoCode下载] 使用ML51实现LoRa模块数据对传

[复制链接]
 楼主| wahahaheihei 发表于 2024-4-21 13:54 | 显示全部楼层 |阅读模式
EC_ML51_LoRa_Control_V1.00.zip (1.09 MB, 下载次数: 1)
LoRa是LongRange的简称,应用于物联网的低功耗广域网传输技术(Low Power Wide Area Network, LPWAN)。LoRa无线通信技术由美商Semtech并购的法商Cycleo所开发,并与IBM合作制定规范,最后由Semtech、Cisco、IBM三大公司作为核心,组成LoRa联盟推动相关发展,为现今最受产业支持的LPWAN技术。
LoRa的模式如Wi-Fi般,任何人都可以设置基地台来建置网络环境。其具有较高的传输带宽,除了能进行单向传输的省电通讯外,也能够进行数据交换,适合应用于一些较大型的智能工厂中。除此之外,为了因应不同使用目的,LoRa有Class A, Class B, Class C 3个种类。Class A 做基本的定时传输用,强调省电、Class B 除基本传输功能外,还增加触发性传输能力、Class C 则提供持续传输功能。
本范例代码基于NuMicro ML51芯片中的SPI及GPIO功能,实现LoRa模块数据对传。

 楼主| wahahaheihei 发表于 2024-4-21 13:55 | 显示全部楼层
 楼主| wahahaheihei 发表于 2024-4-21 13:55 | 显示全部楼层
 楼主| wahahaheihei 发表于 2024-4-21 13:56 | 显示全部楼层
设定#define TX 1,可以让ML51控制LoRa模块作为TX传送数据。
设定#define TX 0,可以让ML51控制LoRa模块作为RX传送数据。
范例中先呼叫BoardInit()与Radio_Init()进行GPIO与SPI等硬件的初始化,然后开始进行LoRa数据传输测试。
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Website: http://www.nuvoton.com
  8. //  E-Mail : MicroC-8bit@nuvoton.com
  9. //  Date   : Jan/21/2019
  10. //***********************************************************************************************************

  11. #include <stdio.h>
  12. #include "platform.h"
  13. #include "ML51.h"
  14. #include "Operation.h"
  15. /*---------------------------------------------------------------------------------------------------------*/
  16. /*Define                                                                                                   */
  17. /*---------------------------------------------------------------------------------------------------------*/
  18. #define TX 1

  19. /*---------------------------------------------------------------------------------------------------------*/
  20. /*Global variables                                                                                         */
  21. /*---------------------------------------------------------------------------------------------------------*/
  22. extern unsigned char F_RxStart;
  23. extern unsigned char F_TxStart;


  24. /*---------------------------------------------------------------------------------------------------------*/
  25. /* Functions.                                                                                              */
  26. /*---------------------------------------------------------------------------------------------------------*/
  27. int main(void)
  28. {
  29.     BoardInit();
  30.     Radio_Init();

  31. #if TX
  32.     TxStart();
  33. #else
  34.     RX_Init();
  35. #endif

  36.     while (1)
  37.     {
  38.         if (F_RxStart)
  39.         {
  40.             F_RxStart = FALSE;
  41.             RX_Done();
  42.             RxDoneAction();
  43.             RX_Init();
  44.         }

  45.         if (F_TxStart)
  46.         {
  47.             F_TxStart = FALSE;
  48.             TX_Done();
  49.             TxDoneAction();
  50.             TxStart();
  51.         }
  52.     }
  53. }

zhengshuai888 发表于 2024-4-21 19:18 来自手机 | 显示全部楼层
lora模块都是串口通信接口,应用较简单。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

231

主题

3196

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部

231

主题

3196

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部