|
|
@@ -1,20 +1,76 @@
|
|
|
## 功能模块介绍:
|
|
|
|
|
|
-1、main.lua:主程序入口;
|
|
|
+1、main.lua:主程序入口。
|
|
|
|
|
|
-2、pins_test.lua: 功能演示核心脚本,动态修改管脚复用功能,演示复用后的管脚的功能等,在main.lua中加载运行;
|
|
|
+2、my.json: 自定义管脚配置示例文件,用于演示 pins.loadjson(path)接口加载自定义管脚配置文件的功能,该文件手动编写容易出错,建议使用合宙LuatIO可视化工具 [LuatIO初始化配置工具 ](https://docs.openluat.com/air780epm/common/luatio/)自动生成。
|
|
|
|
|
|
-3、my.json: 管脚配置示例文件,用于演示 pins.loadjson(path)接口加载自定义管脚配置文件的功能,该文件手动编写容易出错,建议使用合宙LuatIO可视化工具 [LuatIO初始化配置工具 ](https://docs.openluat.com/air780epm/common/luatio/)自动生成;
|
|
|
+3、pins_Air8000.json: Air8000核心板管脚配置示例文件,底层自动加载该文件完成管脚配置,使用合宙LuatIO可视化工具自动生成。
|
|
|
|
|
|
-4、pins_Air8000.json: 管脚配置示例文件,用于演示 pins.loadjson(path)接口加载自定义管脚配置文件的功能,或者底层自动加载该文件,使用合宙LuatIO可视化工具自动生成。
|
|
|
+4、pins_default.lua:功能演示模块,在main.lua中加载运行。
|
|
|
+
|
|
|
+5、pins_dynamic.lua:功能演示模块,在main.lua中加载运行。
|
|
|
|
|
|
## 演示功能概述:
|
|
|
|
|
|
-1.加载管脚配置文件,初始化所有io引脚功能;
|
|
|
+**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配置管脚功能
|
|
|
|
|
|
-2.动态修改管脚复用功能,这里演示SPI管脚pin41脚即SPI1_CS复用为UART2_RX,pin40脚即SPI1_MOSI复用为UART2_TX;
|
|
|
+该文件中
|
|
|
|
|
|
-3.演示复用的串口管脚的功能,通过串口工具收发数据。
|
|
|
+pin41脚配置为SPI1_CS,
|
|
|
+
|
|
|
+pin40脚配置为SPI1_MOSI
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+2.通过pins.setup接口动态修改管脚复用功能,
|
|
|
+
|
|
|
+这里演示
|
|
|
+
|
|
|
+pin41脚由原SPI1_CS功能复用为UART2_RX,
|
|
|
+
|
|
|
+pin40脚由原SPI1_MOSI功能复用为UART2_TX
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+3.演示重新配置的串口管脚的功能,通过串口工具收发数据。
|
|
|
|
|
|
|
|
|
|
|
|
@@ -34,11 +90,11 @@
|
|
|
|
|
|
3、USB转TTL串口线一根,串口线usb口连接电脑USB口,Air8000核心板和串口线,按以下方式接线:
|
|
|
|
|
|
-| Air8000核心板 | 串口线 |
|
|
|
-| ---------- | ------- |
|
|
|
-| SPI1_CS | uart_tx |
|
|
|
-| SPI1_MOSI | uart_rx |
|
|
|
-| GND | GND |
|
|
|
+| Air8000核心板 | 串口线 |
|
|
|
+| --------------- | ------- |
|
|
|
+| pin40/SPI1_MOSI | uart_rx |
|
|
|
+| pin41/SPI1_CS | uart_tx |
|
|
|
+| GND | GND |
|
|
|
|
|
|
|
|
|
|
|
|
@@ -53,13 +109,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
- pins_test.lua
|
|
|
+ pins_default.lua
|
|
|
|
|
|
+ pins_dynamic.lua
|
|
|
|
|
|
|
|
|
- my.json
|
|
|
-
|
|
|
|
|
|
+ my.json
|
|
|
|
|
|
pins_Air8000.json
|
|
|
|
|
|
@@ -73,45 +129,82 @@
|
|
|
|
|
|
1、搭建好硬件环境
|
|
|
|
|
|
-2、demo脚本文件pins_test.lua中,设置了方式1和方式2两种加载管脚配置文件的方式,方式1在pins_Air8000.json文件中,pin40配置为UART2_TXD,pin41配置为UART2_RXD,
|
|
|
-
|
|
|
-方式2在my.json文件中pin40配置为SPI1_MOSI,pin41配置为SPI1_CS,通过脚本中配置管脚复用的两行代码将这两个脚配置为UART2使用。
|
|
|
-
|
|
|
-按照自己的需求选择其一,脚本中默认是方式2:加载my.json自定义管脚配置文件。
|
|
|
+2、main.lua中,加载pins_default.lua或者pins_dynamic.lua
|
|
|
|
|
|
3、Luatools烧录内核固件和修改后的demo脚本代码
|
|
|
|
|
|
4、烧录成功后,代码会自动运行,查看打印日志,如果正常运行,会打印加载配置文件,配置管脚,以及配置完成后向串口发消息,通过SSCOM串口工具查看串口收到的消息,SSCOM也可以向模组发送消息进行交互。
|
|
|
|
|
|
-如下log显示:其中 I/user.uart receive日志是串口工具向模组发数据,模组收到数据触发打印,
|
|
|
+如下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次向串口发数据
|
|
|
+
|
|
|
|
|
|
-图片中红框是SSCOM串口工具收到模组发来的消息,蓝框是模组收到SSCOM串口工具发来的消息。
|
|
|
|
|
|
```
|
|
|
-[2025-10-28 13:18:00.720][000000000.360] I/user.main Air8000_pins 001.000.000
|
|
|
-[2025-10-28 13:18:00.726][000000000.376] E/pins _STB不是可配置的外设功能
|
|
|
-[2025-10-28 13:18:00.730][000000000.376] W/pins pins 35 CAN_STB setup failed
|
|
|
-[2025-10-28 13:18:00.734][000000000.384] I/user.加载自定义的配置文件 true 0
|
|
|
-[2025-10-28 13:18:00.739][000000000.385] I/user.配置pin41脚即SPI1_CS为UART2_RX true
|
|
|
-[2025-10-28 13:18:00.743][000000000.385] I/user.配置pin40脚即SPI1_MOSI为UART2_TX true
|
|
|
-[2025-10-28 13:18:00.748][000000000.385] Uart_ChangeBR 1338:uart2, 115200 115203 26000000 3611
|
|
|
-[2025-10-28 13:18:02.418][000000002.386] I/user.这是第0次向串口发数据
|
|
|
-[2025-10-28 13:18:06.419][000000006.387] I/user.这是第1次向串口发数据
|
|
|
-[2025-10-28 13:18:07.776][000000007.752] I/user.uart receive 2 11 123456789
|
|
|
-
|
|
|
-[2025-10-28 13:18:07.784][000000007.753] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22
|
|
|
-[2025-10-28 13:18:10.424][000000010.387] I/user.这是第2次向串口发数据
|
|
|
-[2025-10-28 13:18:14.408][000000014.387] I/user.这是第3次向串口发数据
|
|
|
-[2025-10-28 13:18:16.289][000000016.264] I/user.uart receive 2 11 123456789
|
|
|
-
|
|
|
-[2025-10-28 13:18:16.295][000000016.265] I/user.uart receive(hex) 2 11 3132333435363738390D0A 22
|
|
|
-[2025-10-28 13:18:18.423][000000018.387] I/user.这是第4次向串口发数据
|
|
|
-[2025-10-28 13:18:22.420][000000022.387] I/user.这是第5次向串口发数据
|
|
|
-[2025-10-28 13:18:26.414][000000026.387] I/user.这是第6次向串口发数据
|
|
|
-[2025-10-28 13:18:30.418][000000030.387] I/user.这是第7次向串口发数据
|
|
|
-[2025-10-28 13:18:34.416][000000034.387] I/user.这是第8次向串口发数据
|
|
|
-[2025-10-28 13:18:38.409][000000038.387] 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次向串口发数据
|
|
|
+
|
|
|
|
|
|
```
|
|
|
|
|
|
-
|
|
|
+
|