## 功能模块介绍: 1、main.lua:主程序入口; 2、pins_test.lua: 功能演示核心脚本,动态修改管脚复用功能,演示复用后的管脚的功能等,在main.lua中加载运行; 3、my.json:自定义管脚配置文件,手动编写容易出错,建议使用合宙LuatIO可视化工具 [LuatIO初始化配置工具 - common@air780epm - 合宙模组资料中心](https://docs.openluat.com/air780epm/common/luatio/)自动生成; 4、pins_Air8000.json:管脚配置文件,使用合宙LuatIO可视化工具自动生成。 ## 演示功能概述: 1.加载管脚配置文件,初始化所有io引脚功能; 2.动态修改管脚复用功能,这里演示SPI管脚pin41脚即SPI1_CS复用为UART2_RX,pin40脚即SPI1_MOSI复用为UART2_TX; 3.演示复用的串口管脚的功能,通过串口工具收发数据。 ## 演示硬件环境 ![netdrv_multi](https://docs.openluat.com/air8000/product/image/8000核心板.jpg) 1、Air8000核心板一块+可上网的sim卡一张+4g天线一根+wifi天线一根+网线一根: * sim卡插入核心板的sim卡槽 * 天线装到开发板上 * 网线一端插入核心板网口,另外一端连接可以上外网的路由器网口 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核心板 | 串口线 | | ---------- | ------- | | SPI1_CS | uart_tx | | SPI1_MOSI | uart_rx | | GND | GND | ## 演示软件环境 1、 Luatools下载调试工具 2、 固件版本:LuatOS-SoC_V2016_Air8000_1,固件地址,如有最新固件请用最新 [https://docs.openluat.com/air8000/luatos/firmware/](https://docs.openluat.com/air8000/luatos/firmware/) 3、 脚本文件: main.lua pins_test.lua my.json pins_Air8000.json 4、 pc 系统 win11(win10 及以上) 5、sscom串口工具 ## 演示核心步骤 1、搭建好硬件环境 2、demo脚本文件pins_test.lua中,设置了方式1和方式2两种加载管脚配置文件的方式,按照自己的需求选择其一,脚本中默认是方式2:加载my.json自定义管脚配置文件。 3、Luatools烧录内核固件和修改后的demo脚本代码 4、烧录成功后,代码会自动运行,查看打印日志,如果正常运行,会打印加载配置文件,配置管脚,以及配置完成后串口交互等信息,如下log显示:其中 I/user.uart receive日志是串口工具向模组发数据,模组收到数据触发打印。 ``` [2025-10-24 15:31:09.491][000000000.385] I/user.main Air8000_pins 001.000.000 [2025-10-24 15:31:09.496][000000000.407] E/pins _STB不是可配置的外设功能 [2025-10-24 15:31:09.500][000000000.407] W/pins pins 35 CAN_STB setup failed [2025-10-24 15:31:09.503][000000000.410] I/user.加载自定义的配置文件 true 0 [2025-10-24 15:31:09.508][000000000.411] I/user.配置pin41脚即SPI1_CS为UART2_RX true [2025-10-24 15:31:09.514][000000000.411] I/user.配置pin40脚即SPI1_MOSI为UART2_TX true [2025-10-24 15:31:09.518][000000000.411] Uart_ChangeBR 1338:uart2, 115200 115203 26000000 3611 [2025-10-24 15:31:11.167][000000002.412] I/user.这是第0次向串口发数据 [2025-10-24 15:31:11.736][000000002.955] D/mobile cid1, state0 [2025-10-24 15:31:11.740][000000002.956] D/mobile bearer act 0, result 0 [2025-10-24 15:31:11.746][000000002.956] D/mobile NETIF_LINK_ON -> IP_READY [2025-10-24 15:31:11.750][000000002.974] D/mobile TIME_SYNC 0 [2025-10-24 15:31:15.178][000000006.413] I/user.这是第1次向串口发数据 [2025-10-24 15:31:19.172][000000010.414] I/user.这是第2次向串口发数据 [2025-10-24 15:31:23.166][000000014.415] I/user.这是第3次向串口发数据 [2025-10-24 15:31:24.212][000000015.459] I/user.uart receive 2 11 123456789 [2025-10-24 15:31:24.221][000000015.460] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22 [2025-10-24 15:31:25.945][000000017.183] I/user.uart receive 2 11 123456789 [2025-10-24 15:31:25.954][000000017.183] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22 [2025-10-24 15:31:27.171][000000018.415] I/user.这是第4次向串口发数据 [2025-10-24 15:31:31.173][000000022.416] I/user.这是第5次向串口发数据 [2025-10-24 15:31:35.179][000000026.417] I/user.这是第6次向串口发数据 [2025-10-24 15:31:39.176][000000030.418] I/user.这是第7次向串口发数据 [2025-10-24 15:31:43.171][000000034.419] I/user.这是第8次向串口发数据 [2025-10-24 15:31:47.176][000000038.420] I/user.这是第9次向串口发数据 ```