演示視頻
本文檔適合大彩PM 4G系列串口屏產品使用。
1. VisualTFT軟件版本:V3.0.0.1112及以上的版本。
版本查看:
1) 打開VisualTFT軟件啟動頁面如圖2-1軟件版本,右上角會顯示的軟件版本號;
圖2-1軟件版本
2) 打開VisualTFT,在軟件右下角可以查看軟件版本圖2-2軟件版本,最新版本可登錄http://www.botecn.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.botecn.com/index.php?s=/List/index/cid/19.html
2 《LUA基礎學習》可通過以下鏈接下載物聯型開發包獲取:
http:/www.botecn.com/index.php?s=/List/index/cid/19.html
3 LUA腳本初學者可以通過下面鏈接進行學習。
http://www.runoob.com/lua/lua-arrays.html
本文主要介紹串口自定義指令控制4G模塊時需要執行的指令以及所使用API函數的詳細說明,執行流程如下。
圖 5-1 流程圖
通過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
接收串口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
總 部 地 址:廣州市增城區寧西街新耀北路56號
公司郵箱:hmi@gz-dc.com
公司傳真:(020)82187676