您的位置:首頁   >  關于我們  >  新聞動態

                                                大彩串口屏CAN總線數據收發應用說明

                                                發布人:大彩科技發布日期:2021-09-02

                                                一、適合范圍


                                                本文檔適合大彩帶 CAN接口的EW系列串口屏產品使用。





                                                二、開發環境版本


                                                1. VisualTFT軟件版本:V3.0.1.1112及以上的版本。

                                                版本查看:

                                                1) 打開VisualTFT軟件啟動頁面如圖2-1軟件版本,右上角會顯示的軟件版本號;

                                                圖片

                                                圖2-1軟件版本


                                                2) 打開VisualTFT,在軟件右下角可以查看軟件版本圖2-2軟件版本,最新版本可登錄http://www.lysxcz.com/進行下載。

                                                圖片

                                                圖2-2軟件版本


                                                2. 串口屏硬件版本:EW系列固件 >= V7.0.863.0。

                                                版本查看:

                                                1) 查看屏幕背面版本號貼紙;

                                                2) VisualTFT與屏幕聯機成功后,右下角顯示的版本號。





                                                三、CAN功能概述


                                                EW系列串口屏CAN總線接口的參數如下:

                                                1. 波特率支持125k ~ 1M Bps;

                                                2. 屏幕內置128歐姆終端電阻;

                                                3. 支持標準幀和擴展幀;

                                                4. 遵循CAN2.0B協議。





                                                四、參考資料


                                                 1  LUA 腳本API V1.4》可通過以下鏈接下載物聯型開發包獲取:

                                                http:/www.lysxcz.com/index.php?s=/List/index/cid/19.html

                                                 2  《LUA基礎學習》可通過以下鏈接下載物聯型開發包獲取:

                                                http:/www.lysxcz.com/index.php?s=/List/index/cid/19.html

                                                 3  LUA腳本初學者可以通過下面鏈接進行學習。

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





                                                五、教程實現


                                                本文主要介紹屏幕CAN接口數據收發,以及CAN相關API應用等,將以下2點進行說明:

                                                1. 準備工程素材;

                                                2. 配置串口屏工程;






                                                5.1 準備工程素材

                                                在實現例程前需要作以下3個準備:

                                                1. 硬件平臺;

                                                2. 軟件平臺;

                                                3. UI素材;


                                                5.1.1 硬件平臺

                                                該例程使用大彩物聯型7寸串口屏DC80480EW070為驗證開發平臺。如圖5-1所示;

                                                圖5-1  EW系列7寸串口屏

                                                其他尺寸EW型的串口屏帶CAN總線接口的產品均可借鑒此教程。


                                                5.1.2 軟件平臺

                                                使用大彩自主研發的上位機軟件VisualTFT配置工程,登錄http://www.lysxcz.com/下載。如圖5-2所示;

                                                圖片

                                                圖5-2 下載軟件






                                                5.2 配置串口屏工程

                                                本文主要介紹以下2點:

                                                (1) 發送數據

                                                (2) 接收并顯示數據


                                                5.2.1 CAN總線收發測試

                                                本例程中使用電腦通過USB轉CAN的調試工具與EW070進行數據收發測試。

                                                1. 畫面配置

                                                在畫面ID0中,添加兩個文本控件(控件ID1、控件ID2)和一個按鈕控件(控件ID4),其中控件控件ID1顯示“需要發送的數據”、控件ID2顯示“CAN總線接收到的數據”??丶蘒D1為按鈕按下時候發出數據給CAN總線。如圖5-3所示: 

                                                圖5-3 畫面配置


                                                2 LUA腳本編輯

                                                在系統初始化函數中打開CAN bus 接口,代碼如所示;

                                                --初始化函數
                                                function on_init()
                                                    canbus_open(0,125,0,0)    --打開CANBUS 接口,設備索引號0,波特率125kbps ,關閉只讀模式,關閉自收發測試
                                                end


                                                本例程中,用戶點擊按鈕控件ID4后,將向CAN總線發送控件1的值。代碼如程序清單 1所示:


                                                程序清單 1 功能實現

                                                --用戶通過觸摸修改控件后,執行此回調函數。
                                                --點擊按鈕控件,修改文本控件、修改滑動條都會觸發此事件。
                                                function on_control_notify(screen,control,value)
                                                    if screen== screen_can and control==4 and value==1  
                                                    then
                                                        send_data_buffer[0] =  get_value(screen_can,1)>> 8
                                                        send_data_buffer[1] =  get_value(screen_can,1)&0xFF
                                                        canbus_write(0,CAN_CMD_ID,2,0,0,send_data_buffer)
                                                
                                                    end
                                                end



                                                電腦調試工具接收到CAN的數據,顯示如下:


                                                function on_canbus_recv (index,identifier,dlc,rtr,ide,data)
                                                     if  CAN_CMD_ID == identifier then
                                                        set_value(screen_can,5,rtr)
                                                        if data[0] ~= nil and data[1] ~= nil then
                                                            local show_value = (data[0]<<8) + data[1]          --將前兩個字節合并顯示
                                                            set_value(screen_can,2,show_value)
                                                            canbus_write(0,CAN_CMD_ID,dlc,0,0,data)
                                                
                                                        end
                                                
                                                     end
                                                
                                                end


                                                當電腦通過CAN正確響應屏幕請求后,將信息顯示在文本ID2中。


                                                5.2.2 核心API函數

                                                1) canbus_open(index,baudrate,listen_mode,loop_back) --開啟CANBUS 接口

                                                • Index-索引號0~1(0指的是第一路CAN接口,1表示第二路CAN接口,目前只支持一路)
                                                • Baudrate-波特率(單位K),可選125,250,500,1000
                                                • listen_mode-只讀模式
                                                • loop_back-自發自收(環回/自測)


                                                2)  canbus_close(index) 關閉CANBUS 接口

                                                • Index-索引號0~1


                                                3) canbus_write(index,identifier,dlc,rtr,ide,data)  發送CAN報文

                                                • index--索引號0~1
                                                • identifier--報文ID(越小優先級越高)
                                                • dlc--數據長度(0~8,最長8個字節)
                                                • rtr--遠程幀,0代表否,1代表是
                                                • ide--擴展幀,0代表否,1代表是
                                                • data--數據,table 格式

                                                 

                                                4) on_canbus_recv(index,identifier,dlc,rtr,ide,data)  CAN 報文回調函數,收到報文后,系統自動調用

                                                • index--索引號0~1
                                                • identifier--報文ID(越小優先級越高)
                                                • dlc--數據長度(0~8,最長8個字節)
                                                • rtr--遠程幀,0代表否,1代表是
                                                • ide--擴展幀,0代表否,1代表是
                                                • data--數據,table 格式

                                                 

                                                基本思路:當按鈕控件ID4按下的時候,觸發觸摸控件回調函數on_control_notify(),再調用canbus_write ()向CAn總線發送報文。當CAN總線其他節點發送數據后屏幕會自動回調系統函數on_canbus_recv,通過判斷對應的報文ID編號,對屏幕的響應信息data進行提取。





                                                欧美一级A片欧黑人一级↖片