打印
[DemoCode下载]

使用ML51实现LoRa模块数据对传

[复制链接]
467|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
EC_ML51_LoRa_Control_V1.00.zip (1.09 MB)
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数据传输测试。
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

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

#include <stdio.h>
#include "platform.h"
#include "ML51.h"
#include "Operation.h"
/*---------------------------------------------------------------------------------------------------------*/
/*Define                                                                                                   */
/*---------------------------------------------------------------------------------------------------------*/
#define TX 1

/*---------------------------------------------------------------------------------------------------------*/
/*Global variables                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/
extern unsigned char F_RxStart;
extern unsigned char F_TxStart;


/*---------------------------------------------------------------------------------------------------------*/
/* Functions.                                                                                              */
/*---------------------------------------------------------------------------------------------------------*/
int main(void)
{
    BoardInit();
    Radio_Init();

#if TX
    TxStart();
#else
    RX_Init();
#endif

    while (1)
    {
        if (F_RxStart)
        {
            F_RxStart = FALSE;
            RX_Done();
            RxDoneAction();
            RX_Init();
        }

        if (F_TxStart)
        {
            F_TxStart = FALSE;
            TX_Done();
            TxDoneAction();
            TxStart();
        }
    }
}

使用特权

评论回复
5
zhengshuai888| | 2024-4-21 19:18 | 只看该作者
lora模块都是串口通信接口,应用较简单。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

202

主题

2988

帖子

12

粉丝