readme.md 7.7 KB

功能模块介绍:

1、main.lua:主程序入口。

2、my.json: 自定义管脚配置示例文件,用于演示 pins.loadjson(path)接口加载自定义管脚配置文件的功能,该文件手动编写容易出错,建议使用合宙LuatIO可视化工具 LuatIO初始化配置工具 自动生成。

3、pins_Air8000.json: Air8000核心板管脚配置示例文件,底层自动加载该文件完成管脚配置,使用合宙LuatIO可视化工具自动生成。

4、pins_default.lua:功能演示模块,在main.lua中加载运行。

5、pins_dynamic.lua:功能演示模块,在main.lua中加载运行。

演示功能概述:

pins_default.lua:

1.烧录管脚配置文件luadb/pins_Air8000.json配置管脚功能

2.烧录pins_Air8000.json之前,

pin41脚默认功能是SPI1_CS,

pin40脚默认功能是SPI1_MOSI,

烧录了pins_Air8000.json后,在内核固件运行时,自动加载pins_Air8000.json,并且按照pins_Air8000.json的配置初始化所有io引脚功能,

该文件中把

pin41脚即原SPI1_CS功能配置为UART2_RX,

pin40脚即原SPI1_MOSI功能配置为UART2_TX,

即烧录pins_Air8000.json文件后,

pin41脚功能为UART2_RX,

pin40脚功能为UART2_TX

3.演示重新配置的串口管脚的功能,通过串口工具收发数据。

pins_dynamic.lua:

1.加载自定义的管脚配置文件my.json配置管脚功能

该文件中

pin41脚配置为SPI1_CS,

pin40脚配置为SPI1_MOSI

2.通过pins.setup接口动态修改管脚复用功能,

这里演示

pin41脚由原SPI1_CS功能复用为UART2_RX,

pin40脚由原SPI1_MOSI功能复用为UART2_TX

3.演示重新配置的串口管脚的功能,通过串口工具收发数据。

演示硬件环境

netdrv_multi

1、Air8000核心板一块

2、TYPE-C USB数据线一根 ,Air8000核心板和数据线的硬件接线方式为:

  • Air8000核心板通过TYPE-C USB口供电;(外部供电/USB供电 拨动开关 拨到 USB供电一端)

  • TYPE-C USB数据线直接插到核心板的TYPE-C USB座子,另外一端连接电脑USB口。

3、USB转TTL串口线一根,串口线usb口连接电脑USB口,Air8000核心板和串口线,按以下方式接线:

Air8000核心板 串口线
pin40/SPI1_MOSI uart_rx
pin41/SPI1_CS uart_tx
GND GND

演示软件环境

1、 Luatools下载调试工具

2、 固件版本:LuatOS-SoC_V2016_Air8000_1,固件地址,如有最新固件请用最新 https://docs.openluat.com/air8000/luatos/firmware/

3、 脚本文件:

main.lua

pins_default.lua

pins_dynamic.lua

my.json

pins_Air8000.json

4、 pc 系统 win11(win10 及以上)

5、sscom串口工具

演示核心步骤

1、搭建好硬件环境

2、main.lua中,加载pins_default.lua或者pins_dynamic.lua

3、Luatools烧录内核固件和修改后的demo脚本代码

4、烧录成功后,代码会自动运行,查看打印日志,如果正常运行,会打印加载配置文件,配置管脚,以及配置完成后向串口发消息,通过SSCOM串口工具查看串口收到的消息,SSCOM也可以向模组发送消息进行交互。

如下log显示使用pins_dynamic功能模块:其中 I/user.uart receive日志是串口工具向模组发数据,模组收到数据触发打印,

图片中蓝框是SSCOM串口工具收到模组发来的消息,红框是模组收到SSCOM串口工具发来的消息。

[2025-11-10 11:27:14.025][000000000.610] I/user.main Air8000_pins 001.000.000
[2025-11-10 11:27:14.041][000000000.623] E/pins _STB不是可配置的外设功能
[2025-11-10 11:27:14.054][000000000.623] W/pins pins 35 CAN_STB setup failed
[2025-11-10 11:27:14.068][000000000.626] I/user.加载自定义的配置文件 true 0
[2025-11-10 11:27:14.083][000000000.627] I/user.配置pin41脚即SPI1_CS为UART2_RX true
[2025-11-10 11:27:14.101][000000000.627] I/user.配置pin40脚即SPI1_MOSI为UART2_TX true
[2025-11-10 11:27:14.113][000000000.627] Uart_ChangeBR 1338:uart2, 115200 115203 26000000 3611
[2025-11-10 11:27:14.123][000000000.628] I/user.uart uart2重新配置完成
[2025-11-10 11:27:14.493][000000001.474] D/mobile cid1, state0
[2025-11-10 11:27:14.510][000000001.475] D/mobile bearer act 0, result 0
[2025-11-10 11:27:14.529][000000001.475] D/mobile NETIF_LINK_ON -> IP_READY
[2025-11-10 11:27:14.545][000000001.495] D/mobile TIME_SYNC 0
[2025-11-10 11:27:15.573][000000002.628] I/user.这是第0次向串口发数据
[2025-11-10 11:27:19.582][000000006.629] I/user.这是第1次向串口发数据
[2025-11-10 11:27:23.579][000000010.630] I/user.这是第2次向串口发数据
[2025-11-10 11:27:27.580][000000014.630] I/user.这是第3次向串口发数据
[2025-11-10 11:27:31.581][000000018.631] I/user.这是第4次向串口发数据
[2025-11-10 11:27:32.143][000000019.196] I/user.uart receive 2 11 123456789

[2025-11-10 11:27:32.150][000000019.196] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22
[2025-11-10 11:27:33.165][000000020.207] I/user.uart receive 2 11 123456789

[2025-11-10 11:27:33.179][000000020.207] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22
[2025-11-10 11:27:35.587][000000022.632] I/user.这是第5次向串口发数据
[2025-11-10 11:27:39.587][000000026.633] I/user.这是第6次向串口发数据
[2025-11-10 11:27:43.592][000000030.634] I/user.这是第7次向串口发数据
[2025-11-10 11:27:47.596][000000034.635] I/user.这是第8次向串口发数据
[2025-11-10 11:27:51.594][000000038.636] I/user.这是第9次向串口发数据



如下log显示使用pins_default功能模块:其中 I/user.uart receive日志是串口工具向模组发数据,模组收到数据触发打印,

图片中蓝框是SSCOM串口工具收到模组发来的消息,红框是模组收到SSCOM串口工具发来的消息。

[2025-11-10 11:34:24.566][000000000.377] I/user.main Air8000_pins 001.000.000
[2025-11-10 11:34:24.575][000000000.387] Uart_ChangeBR 1338:uart2, 115200 115203 26000000 3611
[2025-11-10 11:34:24.584][000000000.388] I/user.uart uart2配置完成
[2025-11-10 11:34:26.078][000000002.394] I/user.这是第0次向串口发数据
[2025-11-10 11:34:26.083][000000002.395] D/mobile cid1, state0
[2025-11-10 11:34:26.086][000000002.396] D/mobile bearer act 0, result 0
[2025-11-10 11:34:26.092][000000002.396] D/mobile NETIF_LINK_ON -> IP_READY
[2025-11-10 11:34:26.099][000000002.454] D/mobile TIME_SYNC 0
[2025-11-10 11:34:30.047][000000006.395] I/user.这是第1次向串口发数据
[2025-11-10 11:34:34.045][000000010.396] I/user.这是第2次向串口发数据
[2025-11-10 11:34:38.038][000000014.397] I/user.这是第3次向串口发数据
[2025-11-10 11:34:40.566][000000016.927] I/user.uart receive 2 11 123456789

[2025-11-10 11:34:40.576][000000016.927] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22
[2025-11-10 11:34:42.044][000000018.397] I/user.这是第4次向串口发数据
[2025-11-10 11:34:42.568][000000018.929] I/user.uart receive 2 11 123456789

[2025-11-10 11:34:42.575][000000018.929] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22
[2025-11-10 11:34:46.046][000000022.398] I/user.这是第5次向串口发数据
[2025-11-10 11:34:50.044][000000026.399] I/user.这是第6次向串口发数据
[2025-11-10 11:34:54.041][000000030.400] I/user.这是第7次向串口发数据
[2025-11-10 11:34:58.055][000000034.401] I/user.这是第8次向串口发数据
[2025-11-10 11:35:02.050][000000038.402] I/user.这是第9次向串口发数据