Contents Menu Expand Light mode Dark mode Auto light/dark mode
LuatOS 文档
(NEW) Go to English site
前往中文站点
Discord
Light Logo Dark Logo

💁 LuatOS 介绍

  • 🏠️ 首页
  • 🕹️ 在线体验LuatOS
  • 🛠 LuatOS工具大全
  • 💬 技术支持

🌠 快速上手

  • 🌙 Lua教程
    • 基础语法
    • LuaTask框架
  • 固件下载

📖 参考手册

  • 🍴 LuatOS-SOC接口文档
    • 适配状态
    • adc - 模数转换
    • airlink - AirLink(设备间通讯协议)
    • airtalk - 设备之间,设备与PC、手机,对讲处理
    • antbot - 蚂蚁链
    • audio - 多媒体-音频
    • bit64 - 32位系统上对64位数据的基本算术运算和逻辑运算
    • ble - 低功耗蓝牙
    • bluetooth - 蓝牙(总库)
    • camera - 摄像头
    • can - can操作库
    • cc - VoLTE通话功能
    • codec - 多媒体-编解码
    • coremark - 跑分
    • crypto - 加解密和hash函数
    • dac - 数模转换
    • disp - disp库(已废弃)
    • eink - 墨水屏操作库
    • ercoap - 新的Coap协议解析库
    • errDump - 错误上报
    • fastlz - FastLZ压缩
    • fatfs - 读写fatfs格式
    • fdb - kv数据库,掉电不丢数据
    • fft - 快速傅里叶变换(FFT/IFFT),支持 float32 与 q15 定点内核
    • fonts - 字体库
    • fota - 底层固件升级
    • fskv - kv数据库,掉电不丢数据
    • ftp - ftp 客户端
    • gmssl - 国密算法(SM2/SM3/SM4)
    • gpio - GPIO操作
    • gtfont - 高通字库芯片
    • hmeta - 硬件元数据
    • ht1621 - 液晶屏驱动(HT1621/HT1621B)
    • http - http 客户端
    • httpsrv - http服务端
    • i2c - I2C操作
    • i2s - 数字音频
    • icmp - ICMP协议(PING)
    • iconv - iconv操作
    • io - io操作(扩展)
    • ioqueue - io序列操作
    • iotauth - IoT鉴权库, 用于生成各种云平台的参数
    • iperf - 吞吐量测试
    • ir - 红外遥控
    • json - json生成和解析库
    • keyboard - 键盘矩阵
    • lcd - lcd驱动模块
    • lcdseg - 段式lcd
    • libcoap - coap数据处理
    • libgnss - NMEA数据处理
    • little_flash - flash驱动 软件包(同时支持驱动nor flash和nand flash设备)
    • log - 日志库
    • lora - lora驱动模块
    • lora2 - lora2驱动模块(支持多挂)
    • lvgl - LVGL图像库
    • max30102 - 心率模块(MAX30102)
    • mcu - 封装mcu一些特殊操作
    • miniz - 简易zlib压缩
    • misc - 杂项驱动,各种非常规驱动,芯片独有驱动都放在这里
    • mlx90640 - 红外测温(MLX90640)
    • mobile - 蜂窝网络
    • modbus - modbus主从协议栈协议
    • mqtt - mqtt客户端
    • natp - 网络地址端口转换(开发中)
    • nes - nes模拟器
    • netdrv - 网络设备管理
    • nimble - 蓝牙BLE库(nimble版)
    • onewire - 单总线协议驱动
    • os - os操作
    • otp - OTP操作库
    • pack - 打包和解包格式串
    • pin - 管脚命名映射
    • pins - 管脚外设复用
    • pm - 电源管理
    • protobuf - ProtoBuffs编解码
    • pwm - PWM模块
    • repl - “读取-求值-输出” 循环
    • rsa - RSA加密解密
    • rtc - 实时时钟
    • rtos - RTOS底层操作库
    • sdio - sdio
    • sensor - 传感器操作库
    • sfd - SPI FLASH操作库
    • sfud - flash驱动 软件包(支持驱动nor flash设备)
    • sms - 短信
    • socket - 网络接口
    • softkb - 软件键盘矩阵
    • spi - spi操作库
    • sqlite3 - sqlite3数据库操作
    • statem - SM状态机
    • string - 字符串操作函数
    • sys - sys库
    • timer - 操作底层定时器
    • touchkey - 触摸按键
    • tp - 触摸库
    • u8g2 - u8g2图形处理库
    • uart - 串口操作库
    • ulwip - 用户空间的lwip集成(开发中)
    • usbapp - USB功能操作
    • w5500 - w5500以太网驱动
    • wdt - watchdog操作库
    • websocket - websocket客户端
    • wlan - wifi操作
    • wlanraw - WLAN数据RAW传输
    • ws2812 - 幻彩灯带RGB控制器(WS2812系列)
    • xxtea - xxtea加密解密
    • yhm27xx - yhm27xx充电芯片
    • ymodem - ymodem协议
    • zbuff - c内存数据操作库
    • zlib - zlib压缩/解压缩(已废弃)
  • 📮 sys系统消息
  • 🌕 原生API手册
  • 🥢 扩展库接口文档
    • air153C_wtd - 添加软件看门狗功能,防止死机
    • airlbs - airlbs 定位服务(收费服务,需自行联系销售申请)
    • dhcpsrv - DHCP服务器端
    • dnsproxy - DNS代理转发
    • exchg - exchg扩展库
    • exfotawifi - 用于Air8000/8000A/8000W型号模组自动升级WIFI
    • exgnss - exgnss扩展库
    • exnetif - exnetif 控制网络优先级(以太网->WIFI->4G)根据优先级选择上网的网卡。简化开启多网融合的操作,4G作为数据出口给WIFI,以太网设备上网,以太网作为数据出口给WIFI,Air8000上网,WIFI作为数据出口给Air8000,以太网上网。
    • exvib - exvib 三轴加速度传感器扩展库
    • httpdns - 使用Http进行域名解析
    • httpplus - http库的补充
    • lbsLoc - lbsLoc 发送基站定位请求
    • lbsLoc2 - 基站定位v2
    • libfota - libfota fota升级
    • libfota2 - fota升级v2
    • libnet - libnet 在socket库基础上的同步阻塞api,socket库本身是异步非阻塞api
    • netLed - netLed 网络状态指示灯
    • udpsrv - UDP服务器
    • xmodem - xmodem 驱动
Back to top

airlink - AirLink(设备间通讯协议)#

示例

-- 本库仅部分BSP支持, 通信形式以设备内SPI/设备间UART/设备间UART通信为主要载体
-- 主要是 Air8000 和 Air780E 系列
-- 详细用法请参考demo

常量#

常量

类型

解释

airlink.MODE_SPI_SLAVE

number

airlink.start参数, SPI从机模式

airlink.MODE_SPI_MASTER

number

airlink.start参数, SPI主机模式

airlink.MODE_UART

number

airlink.start参数, UART模式

airlink.CONF_SPI_ID

number

SPI配置参数, 设置SPI的ID

airlink.CONF_SPI_CS

number

SPI配置参数, 设置SPI的CS脚的GPIO

airlink.CONF_SPI_RDY

number

SPI/UART配置参数, 设置RDY脚的GPIO

airlink.CONF_SPI_IRQ

number

SPI/UART配置参数, 设置IRQ脚的GPIO

airlink.CONF_SPI_SPEED

number

SPI配置参数, 设置SPI的波特率

airlink.CONF_IRQ_TIMEOUT

number

SPIUART配置参数, 设置IRQ模式的等待超时时间

airlink.CONF_UART_ID

number

UART配置参数, 设置UART的ID

airlink.init()#

初始化AirLink

参数

无

返回值

返回值类型

解释

nil

无返回值

例子

-- 对于Air8000, 本函数已自动执行, 无需手动调用
-- 对于Air780EPM+Air8101的组合, 需要执行一次
airlink.init()

airlink.start(mode)#

启动AirLink

参数

传入值类型

解释

int

mode 0: SPI从机模式 1: SPI主机模式 2: UART模式

返回值

返回值类型

解释

nil

无返回值

例子

-- 对于Air8000, 本函数已自动执行, 无需手动调用
-- 对于Air780EPM+Air8101的组合, 需要执行一次
-- Air780EPM作为SPI主机
airlink.start(airlink.MODE_SPI_MASTER)
-- Air8101作为SPI从机
airlink.start(airlink.MODE_SPI_SLAVE)

airlink.stop(mode)#

关闭AirLink

参数

传入值类型

解释

int

mode 0: SPI从机模式 1: SPI主机模式 2: UART模式

返回值

返回值类型

解释

nil

无返回值

例子

-- 本函数当前无任何功能, 只做预留

airlink.test(count)#

发送测试指令(nop空指令)

参数

传入值类型

解释

int

count 发送次数

返回值

返回值类型

解释

nil

无返回值

例子

-- 本函数仅供内部测试使用
airlink.test(10)

airlink.statistics()#

打印统计信息

参数

无

返回值

返回值类型

解释

nil

无返回值

例子

-- 调试用途, 可周期性调用
airlink.statistics()

airlink.slave_reboot()#

重启从机

参数

无

返回值

返回值类型

解释

nil

无返回值

例子

-- 调试用途, 可重启从机
airlink.slave_reboot()

airlink.sdata(data)#

发送自定义数据

参数

传入值类型

解释

string/zbuff

待传输的自定义数据,可以是字符串, 可以是zbuff

返回值

返回值类型

解释

nil

无返回值

例子

-- 本函数用于传递自定义数据到对端设备, 通常用于Air8101+Air780EPM的场景
airlink.sdata("hello world")

airlink.ready()#

判断是否就绪

参数

无

返回值

返回值类型

解释

bool

是否就绪

例子

-- 判断AirLink是否就绪, 指底层通信是否通畅, 最近一次通信是否超时(默认2s)
-- 本函数仅用于判断AirLink是否就绪, 不能用于判断是否收到数据
if airlink.ready() then
    log.info("airlink", "已经就绪")
else
    log.info("airlink", "尚未就绪")
end

airlink.config(key, value)#

配置AirLink的参数

参数

传入值类型

解释

int

key 配置项, 参考airlink的常数项

int

value 配置值

返回值

返回值类型

解释

bool

成功返回true, 失败返回nil

例子

--配置AirLink的SPI ID为1, CS引脚为10, RDY引脚为11, IRQ引脚为12
airlink.config(airlink.CONF_SPI_ID, 1)
airlink.config(airlink.CONF_SPI_CS, 10)
airlink.config(airlink.CONF_SPI_RDY, 11)
airlink.config(airlink.CONF_SPI_IRQ, 12)

airlink.sfota(path)#

升级从机固件

参数

传入值类型

解释

string

升级文件的路径

返回值

返回值类型

解释

bool

成功返回true, 失败返回nil

例子

-- 注意, 升级过程是异步的, 耗时1~2分钟, 注意观察日志
airlink.sfota("/luadb/air8000s_v5.bin")
-- 注意, 升级过程中, 其他任何指令和数据都不再传输和执行!!!

airlink.debug(mode)#

调试开关

参数

传入值类型

解释

int

mode 0: 关闭调试 1: 打开调试

返回值

返回值类型

解释

nil

无返回值

例子

-- 打开调试(默认是关闭状态)
airlink.debug(1)

airlink.pause(mode)#

暂停或回复airlink通信

参数

传入值类型

解释

int

mode 0: 恢复 1: 暂停

返回值

返回值类型

解释

nil

无返回值

例子

-- 仅当airlink运行在轮询模式, 需要暂停时使用, 通常是为了休眠
airlink.pause(1)

airlink.irqmode(mode, master_gpio, slave_gpio)#

开启中断模式

参数

传入值类型

解释

int

mode false: 禁用 true: 启用

int

master_gpio 主机引脚, 建议使用GPIO20

int

slave_gpio 从机引脚, Air8000使用GPIO140, Air8101使用GPIO28

返回值

返回值类型

解释

nil

无返回值

例子

-- 默认情况下, airlink工作在轮询模式, 周期性查询数据
-- 开启中断模式后, 从机有新数据时, 会在slave_gpio上产生一个下升沿+上升沿中断
airlink.irqmode(true, 20, 140)
-- 注意, 开启本模式, 外部接线必须稳固, 否则各种airlink相关操作都会异常

airlink.wakeupIrqmode(mode, master_gpio, slave_gpio, irq_mode)#

开启wakeup唤醒中断模式

参数

传入值类型

解释

int

mode false: 禁用 true: 启用

int

master_gpio 主机引脚, 建议使用GPIO20

int

slave_gpio 从机引脚, Air8000使用GPIO140, Air8101使用GPIO28

int

irq_mode 中断模式, 例如gpio.RISING (上升沿), gpio.FALLING (下降沿)

返回值

返回值类型

解释

nil

无返回值

例子

-- 用于设置唤醒wifi 开启此功能后, 会在Air8000主机休眠唤醒时,允许在master_gpio上产生一个脉冲,从而通过绑定的slave_gpio触发中断唤醒wifi
airlink.wakeupIrqmode(true, 20, 140, gpio.RISING)
-- 注意, 开启本模式, 外部接线必须稳固, 否则可能会导致触发的中断脉冲不完整或接收不到,从而无法唤醒wifi

airlink.power(enable)#

关闭airlink相关供电

参数

传入值类型

解释

boolean

enable true: 使能 false: 禁用

返回值

返回值类型

解释

nil

无返回值

例子

-- 关闭airlink相关供电, 通常用于省电
-- 当前仅对Air8000带wifi功能的模组有效
-- 关闭之后, 如需使用wifi功能, 需要重新执行wifi.init等操作
-- 注意, wifi供电关掉后, >=128的GPIO也会变成输入高阻态
airlink.power(false)
-- 开启wifi芯片,恢复airlink通信
airlink.power(true)

airlink.sver()#

获取从机版本号

参数

无

返回值

返回值类型

解释

int

从机固件版本号

例子

-- 注意, 获取之前, 需要确定airlink.ready()已经返回true
log.info("airlink", "从机固件版本号", airlink.sver())

Next
airtalk - 设备之间,设备与PC、手机,对讲处理
Previous
adc - 模数转换
Copyright © LuatOS团队 | 下载离线版文档

目录
  • airlink - AirLink(设备间通讯协议)
    • 常量
    • airlink.init()
    • airlink.start(mode)
    • airlink.stop(mode)
    • airlink.test(count)
    • airlink.statistics()
    • airlink.slave_reboot()
    • airlink.sdata(data)
    • airlink.ready()
    • airlink.config(key, value)
    • airlink.sfota(path)
    • airlink.debug(mode)
    • airlink.pause(mode)
    • airlink.irqmode(mode, master_gpio, slave_gpio)
    • airlink.wakeupIrqmode(mode, master_gpio, slave_gpio, irq_mode)
    • airlink.power(enable)
    • airlink.sver()