演示視頻
本文檔適合大彩PM 4G系列串口屏產(chǎn)品使用。
1. VisualTFT軟件版本:V3.0.0.1112及以上的版本。
版本查看:
1) 打開(kāi)VisualTFT軟件啟動(dòng)頁(yè)面如圖2-1軟件版本,右上角會(huì)顯示的軟件版本號(hào);
圖2-1軟件版本
2) 打開(kāi)VisualTFT,在軟件右下角可以查看軟件版本圖2-2軟件版本,最新版本可登錄http://gc086.com/進(jìn)行下載。
圖2-2軟件版本
2. 串口屏硬件版本:M系列固件>= V6.3.249.00。
版本查看:
1) 查看屏幕背面版本號(hào)貼紙;
2) VisualTFT與屏幕聯(lián)機(jī)成功后,右下角顯示的版本號(hào)。
本例程主要講述通過(guò)簡(jiǎn)單的LUA程序,就可以實(shí)現(xiàn)單片機(jī)只需發(fā)指令給串口1就可以控制4G模塊,同時(shí)可以使用大彩指令。
本例程適用于數(shù)據(jù)量小的應(yīng)用。當(dāng)涉及到下載圖片、文件到串口屏FLASH的功能時(shí),還是要在LUA里面進(jìn)行所有的數(shù)據(jù)處理,請(qǐng)參考HTTP下載的例程。
1 《LUA 腳本API V1.4》可通過(guò)以下鏈接下載物聯(lián)型開(kāi)發(fā)包獲取:
http:/gc086.com/index.php?s=/List/index/cid/19.html
2 《LUA基礎(chǔ)學(xué)習(xí)》可通過(guò)以下鏈接下載物聯(lián)型開(kāi)發(fā)包獲取:
http:/gc086.com/index.php?s=/List/index/cid/19.html
3 LUA腳本初學(xué)者可以通過(guò)下面鏈接進(jìn)行學(xué)習(xí)。
http://www.runoob.com/lua/lua-arrays.html
本文主要介紹串口自定義指令控制4G模塊時(shí)需要執(zhí)行的指令以及所使用API函數(shù)的詳細(xì)說(shuō)明,執(zhí)行流程如下。
圖 5-1 流程圖
通過(guò)GPIO控制4G模塊開(kāi)機(jī)。如程序清單1所示:
程序清單 1 4G模塊開(kāi)機(jī)
function on_init() --初始化GPIO gpio_set_out(IOPWRKEY) gpio_set_out(IORESET) gpio_set_value(IOPWRKEY,0) --開(kāi)啟定時(shí)器,等一段時(shí)間在控制4G模塊開(kāi)機(jī) stop_timer(setup_4G_timerid1) start_timer(setup_4G_timerid1,setup_4G_timeout1,0,1) end --4G模塊上電 function setup_4G() --控制4G模塊的開(kāi)機(jī)引腳,開(kāi)機(jī) gpio_set_value(IOPWRKEY,1) stop_timer(setup_4G_timerid) start_timer(setup_4G_timerid,setup_4G_timeout,0,1) end --4G模塊定時(shí)處理接口 function on_timer(timer_id) if timer_id==setup_4G_timerid then --setup_4G:end --控制4G模塊的開(kāi)機(jī)引腳,開(kāi)機(jī)完成,回復(fù)初始狀態(tài) gpio_set_value(IOPWRKEY,0) end if timer_id==setup_4G_timerid1 then setup_4G() end end
接收串口1的自定義指令,自定義指令中包括AT指令,在LUA中處理,獲取出AT指令,再通過(guò)串口3發(fā)送給4G模塊,如程序清單2所示。
程序清單 2 自定義指令解析
--單片機(jī)發(fā)AT指令控制4G模塊,把串口1的數(shù)據(jù)處理后,轉(zhuǎn)發(fā)到串口3 --串口1自定義指令示例一 發(fā)送AT:EE B5 04 41 54 0D 0A FF FC FF FF --串口1自定義指令示例二 發(fā)送AT+CSQ:EE B5 08 41 54 2B 43 53 51 0D 0A FF FC FF FF --串口1自定義指令示例三 發(fā)送AT+COPS?:EE B5 0A 41 54 2B 43 4F 50 53 3F 0D 0A FF FC FF FF --串口1自定義指令示例四 發(fā)送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指令長(zhǎng)度 + AT指令 --例子:EE B5 02 41 54 0D 0A FF FC FF FF --解析:固定幀頭 AT指令長(zhǎng)度 AT指令 固定幀尾 --AT指令會(huì)放到 packet_at 里 --packet_at[0]開(kāi)始就是AT指令 --有效指令字節(jié)數(shù) #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模塊返回的數(shù)據(jù),再通過(guò)串口1發(fā)送給單片機(jī),如程序清單3所示;
程序清單 3 接收4G模塊返回的數(shù)據(jù)
function on_uart_recv_data3(packet) --4G返回的數(shù)據(jù),串口3轉(zhuǎn)發(fā)到串口1 uart_send_data(packet) End