合宙Luat Air720SL开发板(EVB_Air720SL)初体验(3)-实现屏幕显示(下)

##本文内容

在本篇文章的上部分中我们用Air202实现了一个串口屏,在本文的下部分中我们将尝试把做好的串口屏和Air720SL开发板连接,使Air720SL可以用屏幕输出文本信息。

##连接方法

Air720SL,本身有两个硬件串口,在Demo板上通过CH340转换成USB接口,供连接到电脑上调试。 由于Air720SL采用的UART为1.8V电平,在开发板中通过三极管和二极管构成的电平转换电路转换成3.3V电平,可惜这部分电路已经和CH340在线连接起来,无法单独使用,因此我用一块小板作了电平转换电路,并和DEMO板上的UART引出管脚相连接。

刚好DEMO板上有一个UART1<->UART2切换开关,可以将其中一路UART口与其他电路板载电路断开连接。 我们这里把开关拨到UART2上,这样UART1就可以外接电平转换电路和Air202串口屏相连了。 下面是连接示意图

##电平转换板的制作

因为手头没有电平转换板,所以参考Air720SL的电路自己DIY了一个,原件并不多,一共只有5个,其中TX一路采用一个三极管两个电阻,RX一路采用一个电阻和一个二极管即可。 原理图如下:

我用了一块2cmX6cm的面包板,按照以上电路简单焊接了一下就完成了。 然后我们把以下几个部件用杜邦线连接起来

Air202串口屏

Air720SL开发板

电平转换小板

连接好后,通电测试。

##编写代码

下面我结合上一篇文章的IO口电平检测Demo,实现了对GPIO_32电平发生变化的检测,并显示在Air202串口屏幕上,代码如下:

demo.lua

--- 模块功能:串口屏 测试 DEMO.
-- @author openLuat
-- @module gpio.testUARTDISPLAY
-- @license MIT
-- @copyright openLuat
-- @release 2020.01.17

require "utils"
require "pm"
require "pins"
require "common"

module(..., package.seeall)

local uartsetup=0

function gpioIntFnc(msg)

    if (uartsetup==1) then
        if msg==cpu.INT_GPIO_POSEDGE then
        --上升沿中断     
        uart.write(1,common.utf8ToGb2312("检测到上升沿\n\r"))
        else
        --下降沿中断
        uart.write(1,common.utf8ToGb2312("检测到下降沿\n\r"))
        end
    end
end

--------------------------------------------GPIO初始化---------------------------------------------
pio32 = pins.setup(32, gpioIntFnc)

-------------------------------------------- 配置串口 --------------------------------------------
-- 串口ID,串口读缓冲区
local UART_ID, sendQueue, writeBuff, writeBusy = 1, {}, { {}, {} }, false
-- 串口超时,串口准备好后发布的消息
local uartimeout, recvReady = 25, "UART_RECV_ID"
--保持系统处于唤醒状态,不会休眠
pm.wake("mcuart")
uart.setup(UART_ID, 115200, 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)

uartsetup=1

main.lua

--必须在这个位置定义PROJECT和VERSION变量
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
PROJECT = "testUARTDISPLAY"
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()

##联机测试

将lua代码通过Luatools烧写到Air720SL上,然后连接GND与GPIO32,可以看到串口屏打印出了相应的响应信息,实验成功。

##总结

至此,我们完成了Air720SL模块连接Air202串口屏的整个原型电路,终于可以在Air720SL上轻松地显示调试信息了。如果您有兴趣也快来试试吧,多加20块钱立即让您的4G产品具有显示功能。 这个项目在Github上已经建立了目录,并上传了本文所述的Lua脚本代码和硬件连线图。 如果您有兴趣和我一起完善他,就快来关注吧。 也欢迎您加我 QQ:64034373 共同探讨 。

##开源项目地址

UART_DISPLAY 开源项目地址:https://github.com/miuser00/202uartdisplay

LLCCom 开源项目地址:https://github.com/chenxuuu/llcom

上次更新 2021-01-28