大彩串口屏4g应用-米乐网页


演示视频


一、适合范围


本文档适合大彩pm 4g系列串口屏产品使用。





二、开发环境版本


1. visualtft软件版本:v3.0.0.1112及以上的版本。

版本查看:

1) 打开visualtft软件启动页面如图2-1软件版本,右上角会显示的软件版本号;

图2-1软件版本


2) 打开visualtft,在软件右下角可以查看软件版本图2-2软件版本,最新版本可登录http://www.gz-dc.com/进行下载。

图2-2软件版本


2. 串口屏硬件版本:m系列固件>= v6.3.249.00

版本查看:

1) 查看屏幕背面版本号贴纸;

2) visualtft与屏幕联机成功后,右下角显示的版本号。





三、概述


本例程主要讲述通过简单的lua程序,就可以实现单片机只需发指令给串口1就可以控制4g模块,同时可以使用大彩指令。

本例程适用于数据量小的应用。当涉及到下载图片、文件到串口屏flash的功能时,还是要在lua里面进行所有的数据处理,请参考http下载的例程。





四、参考资料


 1  《lua 脚本api v1.4》可通过以下链接下载物联型开发包获取:

http:/www.gz-dc.com/index.php?s=/list/index/cid/19.html

 2  《lua基础学习》可通过以下链接下载物联型开发包获取:

http:/www.gz-dc.com/index.php?s=/list/index/cid/19.html

 3  lua脚本初学者可以通过下面链接进行学习。

http://www.runoob.com/lua/lua-arrays.html





五、串口自定义指令流程


本文主要介绍串口自定义指令控制4g模块时需要执行的指令以及所使用api函数的详细说明,执行流程如下。

图 5-1 流程图






5.1 4g模块开机

通过gpio控制4g模块开机程序清单1所示

程序清单 1 4g模块开机


function on_init()
    --初始化gpio
    gpio_set_out(iopwrkey)
    gpio_set_out(ioreset)
    gpio_set_value(iopwrkey,0)
    --开启定时器,等一段时间在控制4g模块开机
    stop_timer(setup_4g_timerid1)
    start_timer(setup_4g_timerid1,setup_4g_timeout1,0,1)
end
--4g模块上电
function setup_4g()
    --控制4g模块的开机引脚,开机
    gpio_set_value(iopwrkey,1)
    stop_timer(setup_4g_timerid)
    start_timer(setup_4g_timerid,setup_4g_timeout,0,1)
end
--4g模块定时处理接口
function on_timer(timer_id)    
    if timer_id==setup_4g_timerid then
        --setup_4g:end
        --控制4g模块的开机引脚,开机完成,回复初始状态
        gpio_set_value(iopwrkey,0)
    end
    if timer_id==setup_4g_timerid1 then
        setup_4g()
    end
end







5.2 串口自定义指令

接收串口1的自定义指令,自定义指令中包括at指令,在lua中处理,获取出at指令,再通过串口3发送给4g模块,如程序清单2所示。

程序清单 2 自定义指令解析

--单片机发at指令控制4g模块,把串口1的数据处理后,转发到串口3
--串口1自定义指令示例一 发送at:ee b5 04 41 54 0d 0a ff fc ff ff
--串口1自定义指令示例二 发送at csq:ee b5 08 41 54 2b 43 53 51 0d 0a ff fc ff ff
--串口1自定义指令示例三 发送at cops?:ee b5 0a 41 54 2b 43 4f 50 53 3f 0d 0a ff fc ff ff
--串口1自定义指令示例四 发送at iccid:ee b5 0a 41 54 2b 49 43 43 49 44 0d 0a ff fc ff ff
function on_uart_recv_data(packet)
    local packet_at={}
    --ee b5 [自定义指令] ff fc ff ff
    --[自定义指令]格式:at指令长度   at指令
    --例子:ee b5       02            41 54 0d 0a     ff fc ff ff
    --解析:固定帧头    at指令长度    at指令          固定帧尾
    --at指令会放到 packet_at 里
    --packet_at[0]开始就是at指令
    --有效指令字节数 #packet-6
    for i=0,packet[2]-1
    do
        packet_at[i] = packet[3 i]
    end
    uart_send_data3(packet_at)
    for i=0,#packet_at
    do
        set_text(0,i 4,packet_at[i])
    end
end


接收4g模块返回的数据,再通过串口1发送给单片机程序清单3所示;

程序清单 3 接收4g模块返回的数据

function on_uart_recv_data3(packet)
    --4g返回的数据,串口3转发到串口1
    uart_send_data(packet)
end









网站地图