广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6820|回复: 0

大彩串口屏4G应用-串口自定义指令

[复制链接]

97

主题

125

帖子

9652

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9652
发表于 2021-11-18 10:40:57 | 显示全部楼层 |阅读模式
演示视频

一、适合范围
本文档适合大彩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模块开机
  1. function on_init()

  2.     --初始化GPIO
  3.     gpio_set_out(IOPWRKEY)
  4.     gpio_set_out(IORESET)
  5.     gpio_set_value(IOPWRKEY,0)

  6.     --开启定时器,等一段时间在控制4G模块开机
  7.     stop_timer(setup_4G_timerid1)
  8.     start_timer(setup_4G_timerid1,setup_4G_timeout1,0,1)

  9. end

  10. --4G模块上电
  11. function setup_4G()

  12.     --控制4G模块的开机引脚,开机
  13.     gpio_set_value(IOPWRKEY,1)
  14.     stop_timer(setup_4G_timerid)
  15.     start_timer(setup_4G_timerid,setup_4G_timeout,0,1)
  16. end

  17. --4G模块定时处理接口
  18. function on_timer(timer_id)   
  19.     if timer_id==setup_4G_timerid then
  20.         --setup_4G:end
  21.         --控制4G模块的开机引脚,开机完成,回复初始状态
  22.         gpio_set_value(IOPWRKEY,0)
  23.     end

  24.     if timer_id==setup_4G_timerid1 then
  25.         setup_4G()
  26.     end
  27. end
复制代码



5.2 串口自定义指令
接收串口1的自定义指令,自定义指令中包括AT指令,在LUA中处理,获取出AT指令,再通过串口3发送给4G模块,如程序清单2所示。
程序清单 2 自定义指令解析
  1. --单片机发AT指令控制4G模块,把串口1的数据处理后,转发到串口3
  2. --串口1自定义指令示例一 发送AT:EE B5 04 41 54 0D 0A FF FC FF FF
  3. --串口1自定义指令示例二 发送AT+CSQ:EE B5 08 41 54 2B 43 53 51 0D 0A FF FC FF FF
  4. --串口1自定义指令示例三 发送AT+COPS?:EE B5 0A 41 54 2B 43 4F 50 53 3F 0D 0A FF FC FF FF
  5. --串口1自定义指令示例四 发送AT+ICCID:EE B5 0A 41 54 2B 49 43 43 49 44 0D 0A FF FC FF FF
  6. function on_uart_recv_data(packet)

  7.     local packet_at={}
  8.     --EE B5 [自定义指令] FF FC FF FF
  9.     --[自定义指令]格式:AT指令长度 + AT指令
  10.     --例子:EE B5       02            41 54 0D 0A     FF FC FF FF
  11.     --解析:固定帧头    AT指令长度    AT指令          固定帧尾

  12.     --AT指令会放到 packet_at 里
  13.     --packet_at[0]开始就是AT指令
  14.     --有效指令字节数 #packet-6
  15.     for i=0,packet[2]-1
  16.     do
  17.         packet_at[i] = packet[3+i]
  18.     end
  19.     uart_send_data3(packet_at)
  20.     for i=0,#packet_at
  21.     do
  22.         set_text(0,i+4,packet_at[i])
  23.     end

  24. end
复制代码
接收4G模块返回的数据,再通过串口1发送给单片机,如程序清单3所示;
程序清单 3 接收4G模块返回的数据
  1. function on_uart_recv_data3(packet)
  2.     --4G返回的数据,串口3转发到串口1
  3.     uart_send_data(packet)
  4. End
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
销售与技术支持:(020)82186683-601
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-9-17 03:17 , Processed in 0.061207 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表