LuatOS-SOC接口文档(air780E)--lora2 - lora2驱动模块(支持多挂)

常量

常量

类型

解释

lora2.SLEEP

number

SLEEP模式

lora2.STANDBY

number

STANDBY模式

lora2.init(ic, loraconfig,spiconfig)

lora初始化

参数

传入值类型

解释

string

lora 型号,当前支持:
llcc68
sx1268

table

lora配置参数,与具体设备有关

返回值

返回值类型

解释

userdata

若成功会返回lora对象,否则返回nil

例子

spi_lora = spi.deviceSetup(spi_id,pin_cs,0,0,8,10*1000*1000,spi.MSB,1,0)
lora_device = lora2.init("llcc68",{res = pin_reset,busy = pin_busy,dio1 = pin_dio1},spi_lora)

lora_device:set_channel(freq)

设置频道频率

参数

传入值类型

解释

number

频率

返回值

例子

lora_device:set_channel(433000000)

lora_device:set_txconfig(txconfig)

lora配置发送参数

参数

传入值类型

解释

table

lora发送配置参数,与具体设备有关

返回值

例子

lora_device:set_txconfig(
    {
        mode=1,
        power=22,
        fdev=0,
        bandwidth=0,
        datarate=9,
        coderate=4,
        preambleLen=8,
        fixLen=false,
        crcOn=true,
        freqHopOn=0,
        hopPeriod=0,
        iqInverted=false,
        timeout=3000
    }
)

lora_device:set_rxconfig(set_rxconfig)

lora配置接收参数

参数

传入值类型

解释

table

lora接收配置参数,与具体设备有关

返回值

例子

lora_device:set_rxconfig(
    {
        mode=1,
        bandwidth=0,
        datarate=9,
        coderate=4,
        bandwidthAfc=0,
        preambleLen=8,
        symbTimeout=0,
        fixLen=false,
        payloadLen=0,
        crcOn=true,
        freqHopOn=0,
        hopPeriod=0,
        iqInverted=false,
        rxContinuous=false
    }
)

lora_device:send(data)

发数据

参数

传入值类型

解释

string

写入的数据

返回值

例子

lora_device:send("PING")

lora_device:recv(timeout)

开启收数据

参数

传入值类型

解释

number

超时时间,默认1000 单位ms

返回值

例子

sys.subscribe("LORA_RX_DONE", function(data, size)
    log.info("LORA_RX_DONE: ", data, size)
    lora_device:send("PING")
end)
lora_device:recv(1000)

lora_device:mode(mode)

设置进入模式(休眠,正常等)

参数

传入值类型

解释

number

模式 正常模式:lora.STANDBY 休眠模式:lora.SLEEP 默认为正常模式

返回值

例子

lora_device:mode(lora.STANDBY)

lora_device:on(cb)

注册lora回调

参数

传入值类型

解释

function

cb lora回调,参数包括lora_device, event, data, size

返回值

返回值类型

解释

nil

无返回值

例子

lora_device:on(function(lora_device, event, data, size)
    log.info("lora", "event", event, lora_device, data, size)
    if event == "tx_done" then
        lora_device:recv(1000)
    elseif event == "rx_done" then
        lora_device:send("PING")
    elseif event == "tx_timeout" then

    elseif event == "rx_timeout" then
        lora_device:recv(1000)
    elseif event == "rx_error" then

    end
end)
--[[
event可能出现的值有
    tx_done         -- 发送完成
    rx_done         -- 接收完成
    tx_timeout      -- 发送超时
    rx_timeout      -- 接收超时
    rx_error        -- 接收错误
]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值