中文字幕天堂手机版-欧美一区二区色大片在线观看-丰满人妻视频一区二区三区-美女视频黄的免费的91

您的位置:首頁(yè)   >  關(guān)于我們  >  新聞動(dòng)態(tài)

大彩串口屏4G應(yīng)用-4G模塊初始化流程

發(fā)布人:大彩科技發(fā)布日期:2020-12-10

4G模塊初始化視頻


一、適用范圍


本文檔適合大彩PM 4G系列串口屏產(chǎn)品使用。



二、開(kāi)發(fā)環(huán)境版本


1. VisualTFT軟件版本:V3.0.1.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.257.00

版本查看:

1) 查看屏幕背面版本號(hào)貼紙;

2) VisualTFT與屏幕聯(lián)機(jī)成功后,右下角顯示的版本號(hào)。



三、概述


本例程主要講述4G模塊上電初始化時(shí)所涉及的API函數(shù)的具體作用。



四、參考資料


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

4.  AT指令,可以通過(guò)下面子連接了解

http://www.openluat.com/Product/file/asr1802/Luat%204G模塊AT命令手冊(cè)V4.2.8.pdf




五、開(kāi)機(jī)


串口屏上電后,需要控制4G模塊的PWRKEY管腳啟動(dòng)模塊。主芯片管腳拉高時(shí),PWRKEY管腳被拉低,模塊啟動(dòng),如圖所示。這部分內(nèi)容已經(jīng)封裝在air724at.lua庫(kù)的air_hw_int()函數(shù)中。

圖片

圖片




六、4G初始化流程


本文主要介紹4G模塊初始化的時(shí)需要執(zhí)行的指令以及所使用API函數(shù)的詳細(xì)說(shuō)明,執(zhí)行流程如下。


圖片

 5-1 流程圖


6.1 加載4G API庫(kù)

4G模塊LUA函數(shù)庫(kù)是對(duì)需要用到的AT命令進(jìn)行封裝的庫(kù),初始化時(shí)需要調(diào)用庫(kù)中相關(guān)的回調(diào)函數(shù),所有需要在屏幕上電初始化的同時(shí)將4G API庫(kù)加載。如程序清單 1所示


程序清單 1 加載4G庫(kù)

function on_init()
    
    dofile(‘'air724at.lua') --加載 4G AT指令庫(kù)文件
   ......
end
6.1 設(shè)置串口收發(fā)回調(diào)函數(shù)


通過(guò)函數(shù)air_set_callback()設(shè)置對(duì)應(yīng)的4G通訊相關(guān)數(shù)據(jù)收發(fā)函數(shù)。該函數(shù)主要用于定義串口屏與4G模塊的通訊串口的數(shù)據(jù)發(fā)送函數(shù)、接收函數(shù)、調(diào)試信息處理函數(shù)。此函數(shù)需要再上電初始化時(shí)執(zhí)行,如程序清單 2所示。


程序清單 2 設(shè)置回調(diào)函數(shù)

--[[*******************************************************************
** Function name:  on_init
** Descriptions:   系統(tǒng)初始化時(shí),執(zhí)行此回調(diào)函數(shù)。
**                    注意:回調(diào)函數(shù)的參數(shù)和函數(shù)名固定不能修改
*******************************************************************--]]
function on_init()
    
    dofile('air724at.lua')                  --加載 http.lua 文件
    air_set_callback(on_air_send_cb,on_air_resp_callback,on_air_log_cb)  --設(shè)置4G庫(kù)函數(shù)的命令發(fā)送函數(shù),命令回調(diào)函數(shù)、調(diào)試信息打印函數(shù)
     ......
end

air_set_callback()函數(shù)原型如程序清單 3所示;


程序清單 3 函數(shù)原型

--[[******************************************************************
** Function name:  air_set_callback
** Descriptions :  設(shè)置回調(diào)函數(shù)
** @send_cb      :  向4G發(fā)送數(shù)據(jù)的回調(diào)函數(shù)
** @resp_cb      :  所有4G返回的數(shù)據(jù)的回調(diào)函數(shù)
** @log_cb       :  調(diào)試信息回調(diào)函數(shù)
******************************************************************--]]
function air_set_callback(send_cb,resp_cb,log_cb)
    send_callback = send_cb
    resp_callback = resp_cb
    log_callback = log_cb
end

實(shí)體屏需要通過(guò)串口3將數(shù)據(jù)傳遞給4G模塊。on_air_send_cb()數(shù)據(jù)發(fā)送函數(shù)定義,如程序清單 4所示;


程序清單 4 重定義發(fā)送函數(shù)

--[[*****************************************************************
** Function name:  on_air_send_cb
** Descriptions:   4G模塊-發(fā)送數(shù)據(jù)
******************************************************************--]]
function on_air_send_cb(msg)
    if air_debug_mode==1  
    then
        uart_send_string(msg)   -- air_debug_mode==1 ,使用虛擬屏調(diào)試,通過(guò)串口1發(fā)送數(shù)據(jù)
        my_print(msg)
    else
        uart_send_string3(msg)   -- air_debug_mode~=0 ,使用實(shí)體屏調(diào)試,通過(guò)串口3發(fā)送數(shù)據(jù)
    end
end

on_air_resp_callback()串口收發(fā)函數(shù)定義如程序清單 5所示;


程序清單 5 重定義接收函數(shù)

--[[****************************************************************
** Function name:  on_air_resp_callback
** Descriptions :  4G模塊-數(shù)據(jù)回調(diào)接口
** @key           :  屏幕->4G模塊的發(fā)送請(qǐng)求
** @value         :  4G模塊->返回的數(shù)據(jù)
****************************************************************--]]
function on_air_resp_callback(key, value)  
    if value == nil
    then 
        return              --value為空時(shí)退出
    end
    ......
    if key ~= nil
    then
        return              -- key為空時(shí)退出
    end
......
end

將收發(fā)函數(shù)通過(guò)air_set_callback()設(shè)置系統(tǒng)數(shù)據(jù)收發(fā)函數(shù)后,當(dāng)需要發(fā)送時(shí)調(diào)用on_air_send_cb()可以將指令傳遞給4G模塊,當(dāng)4G模塊接收到數(shù)據(jù)后,系統(tǒng)會(huì)調(diào)用on_air_resp_callback()函數(shù)并將4G模塊接收到的數(shù)據(jù)傳遞進(jìn)函數(shù)。


6.3 4G模塊初始化

當(dāng)串口屏上電初始化時(shí),需要同步將4G模塊開(kāi)機(jī)初始化,所以這里需要將4G模塊的初始化函數(shù)air_hw_int()放置在on_init()函數(shù)里面,以便于串口屏上電時(shí)調(diào)用。如程序清單 6所示;


程序清單 6 4G模塊初始化

--[[***************************************************************************
** Function name:  on_init
** Descriptions:   系統(tǒng)初始化時(shí),執(zhí)行此回調(diào)函數(shù)。
                   注意:回調(diào)函數(shù)的參數(shù)和函數(shù)名固定不能修改
***************************************************************************--]]
function on_init()
    
    dofile('air724at.lua')                --加載 http.lua 文件
    uart_set_baudrate3(115200)          --設(shè)置與4G模塊通訊的串口3的波特率為115200
    air_set_callback(on_air_send_cb,on_air_resp_callback,on_air_log_cb) --設(shè)置4G庫(kù)函數(shù)的命令發(fā)送函數(shù),命令回調(diào)函數(shù)、調(diào)試信息打印函數(shù)
    air_hw_int()                      --4G模塊初始化設(shè)置
end


6.4 初始化相關(guān)API函數(shù)

1) dofile (filename)

加載文件:本例程中加載4G AT 指令的庫(kù)


  • filename :文件名


 

2)  uart_set_baudrate3(speed)

設(shè)置串口3的波特率:串口3為屏幕和4G模塊通訊的串口


  • speed :通訊的波特率


 

3) on_air_recv_data(packet)

串口接收4G模塊的返回?cái)?shù)據(jù)的回調(diào)。


  • packet :形參為表,字節(jié)數(shù)據(jù)。


 

4) air_set_callback (on_air_send_cb,on_air_resp_callback,on_air_log_cb)

設(shè)置4G庫(kù)函數(shù)的回調(diào)。形參類型為函數(shù),參數(shù)依次為命令發(fā)送函數(shù),命令回調(diào)函數(shù)、調(diào)試信息打印函數(shù),可自定義函數(shù)名。


  • on_air_send_cb      :屏幕向4G模塊發(fā)送回調(diào)函數(shù)
  • on_air_resp_callback :4G向屏幕返回?cái)?shù)據(jù)回調(diào)函數(shù)
  • on_air_log_cb       :用戶調(diào)試信息回調(diào)函數(shù)


 

5) air_cmd_add(sendstr,ackstr,timeout,retry,callback)

屏幕向4G模塊發(fā)送AT指令


  • sendstr:屏幕向4G模塊發(fā)送AT指令
  • ackstr:4G模塊應(yīng)答屏幕的請(qǐng)求
  • timeout:應(yīng)答超時(shí)
  • retry:超時(shí)重發(fā)次數(shù),可選
  • callback:應(yīng)答回調(diào)函數(shù),可選


注:如果沒(méi)有設(shè)置超時(shí)重發(fā)次數(shù),則超時(shí)時(shí)直接發(fā)送隊(duì)列中的下一條指令。

 

6) on_air_resp_callback(key, value)

4G向屏幕返回?cái)?shù)據(jù)回調(diào)函數(shù):屏幕發(fā)送AT指令,4G應(yīng)答的數(shù)據(jù)均會(huì)回調(diào)該函數(shù),本函數(shù)如air_set_callback(on_air_send_cb,on_air_resp_callback,on_air_log_cb)函數(shù)設(shè)置。


  • key:屏幕->4G模塊,發(fā)送請(qǐng)求的AT指令
  • value:4G模塊->屏幕,返回的數(shù)據(jù)


 

7) my_print(debug_msg)

當(dāng)en_debug_msg等0時(shí)不顯示調(diào)試信息;等1時(shí)虛擬屏顯示調(diào)試信息; 等2時(shí)實(shí)體屏串口1輸出。


  • debug_msg:需要串口輸出的信息


注:虛擬屏調(diào)試時(shí), en_debug_msg 必須不等于2。實(shí)體屏調(diào)試時(shí), en_debug_msg 必須不等于1。




歡迎聯(lián)系我司銷(xiāo)售咨詢