Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
上海合宙Luat Air720SL模块 入门指南(2)-GPIO上篇
Air720SL
GPIO
初始状态
Air720SL 是上海合宙物联网于2019年11月下旬发布的一款基于ASR1802S芯片组的物联网通讯模块。 模块通讯性能优越,速度充分满足Cat4标准,支持最大下行速率 150Mbps 和最大上行速率50Mbps。EVB_A...
Air720SL 是上海合宙物联网于2019年11月下旬发布的一款基于ASR1802S芯片组的物联网通讯模块。 模块通讯性能优越,速度充分满足Cat4标准,支持最大下行速率 150Mbps 和最大上行速率50Mbps。EVB_Air720SL是针对720SL模块设计的开发板,本文我将针对开发板的IO口的使用进行介绍 ## 本文要介绍的内容 ## [1) Air720SL GPIO口介绍](#1) [2) 编写代码,通过串口调试助手控制IO口输出状态](#2) [3) 测试Air720SL 上电IO口初始状态](#2)
## Air720 GPIO介绍 720SL 共有GPIO接口37个,电平均为1.8V 最大输出电流约2mA。 其中下侧引出GPIO口18个,上侧引出GPIO口为17个, 共35个,除被I2C2端口复用的GPIO49,50从右侧引脚单独引出外,上下两侧排针包括了模块所有GPIO,分布如下图 ![](/static/editormd/php/../uploads/5_30716.jpg) ![](/static/editormd/php/../uploads/5_94840.png) ## 编写代码,通过串口调试助手控制IO口输出状态 Air720系列最常见的接口为UART串口,其中Air720SL支持两个硬件串口和三个软串口,其中名为 “ASR Modem Device 3 AT” 可以映射到Luat编程环境,Lua环境下虚拟串口ID为129,波特率自适应。 下面我们定义一个简单的小指令来控制GPIO的电平: GPIO,
,
GPIO是关键字,port#是GPIO的序号,status为1 代表高电平,status为0 代表低电平
然后编写如下代码,进行GPIO输出测试 DEMO.lua --- 模块功能:GPIO 测试 DEMO. -- @author openLuat -- @module gpio.testGpioSingle -- @license MIT -- @copyright openLuat -- @release 2020.01.07 require "utils" require "pm" require "pins" module(..., package.seeall) -------------------------------------------- 配置串口 -------------------------------------------- -- 串口ID,串口读缓冲区 local UART_ID, sendQueue, writeBuff, writeBusy = 129, {}, {{}, {}}, false -- 串口超时,串口准备好后发布的消息 local uartimeout, recvReady = 25, "UART_RECV_ID" --保持系统处于唤醒状态,不会休眠 pm.wake("mcuart") uart.setup(UART_ID, 912600, 8, uart.PAR_NONE, uart.STOP_1, nil, 1) uart.on(UART_ID, "receive", function(uid) table.insert(sendQueue, uart.read(uid, 8192)) sys.timerStart(sys.publish, uartimeout, recvReady) end) --串口写入 function write(uid, str) --软串口 uart.write(uid, str) end -- 向串口发送收到的字符串 sys.subscribe(recvReady, function() local str = table.concat(sendQueue) -- 串口的数据读完后清空缓冲区 if (string.sub(str,1,4)=="GPIO") then --拆分解析命令 local splitlist = {} string.gsub(str, '[^,]+', function(w) table.insert(splitlist, w) end) --lua下标从1开始 local s_GPIO=splitlist[2] local s_STATUS=splitlist[3] --参数从字符串转换成数字 local i_GPIO=tonumber(s_GPIO) local i_STATUS=tonumber(s_STATUS) --设置GPIO pins.setup(i_GPIO,i_STATUS) end sendQueue = {} log.info("uart read length:", #str,"Port") --执行成功则回送指令,并附加OK write(UART_ID, str.."->OK") end) main.lua PROJECT = "UART_GPIO_OUTPUT_TEST" VERSION = "1.0.0" --加载日志功能模块,并且设置日志输出等级 --如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可 require "log" LOG_LEVEL = log.LOGLEVEL_TRACE require "net" --每1分钟查询一次GSM信号强度 --每1分钟查询一次基站信息 net.startQueryAll(60000, 60000) require "errDump" errDump.request("udp://ota.airm2m.com:9072") require "demo" --启动系统框架 sys.init(0, 0) sys.run() 通过Luatools烧写脚本,并自动重启,然后打开LLC串口调试助手,输入指令 GPIO,32,1 即可将GPIO32,设置为高电平 输入指令 GPIO,32,0 即可将GPIO32,设置为低电平 ![](/static/editormd/php/../uploads/5_53587.jpg)
##测试Air720SL 上电IO口初始状态 重复对所有的IO口进行上电及高低电平控制可以得到下表 ![](/static/editormd/php/../uploads/5_98638.jpg) DEMO板上测试结果为受控IO口27个,有15个初始状态为弱下拉低电平,10个为弱上拉状态,2个为高电平 总结一下: 可以通过外围电路让开机保持在**任意电平**的引脚为**25**个,开机只能配置为**高电平**的**2**个。 至此Air720SL的GPIO输出状态介绍完毕,谢谢您的阅读。
发表于 2020-01-07 22:19
阅读 ( 2752 )
分类:
默认分类
0 推荐
收藏
你可能感兴趣的文章
10、合宙Air模块Luat开发:JSON字符串的生成与解析
2300 浏览
8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用
2556 浏览
7、合宙Air模块Luat开发:定时器的使用方法
2138 浏览
6、合宙Air模块Luat开发:又是一种新的外设之ADC模数转换,现在我们可以采集模拟量数据了
2225 浏览
5、合宙Air模块Luat开发:GPIO输入常见的两种使用方法及其优劣性
2314 浏览
4、合宙Air模块Luat开发:用GPIO输出功能实现一个简单的LED灯闪烁
2544 浏览
相关问题
Air720SL的I2C及I2C2对应设备ID是?如何使用api读写16位地址寄存器
0 回答
Air720D开发板可以在设置GPIO为中断以后再切换为输出模式吗?
2 回答
我想要控制GPIO28怎么办(即Net指示灯)?因为我的硬件上只将这个IO连接了LED...
1 回答
0 条评论
请先
登录
后评论
柴松
技术销售
5 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!