接下來,我們就需要用串口助手來驗證一下,我們新建的DGUS工程有沒有問題了,首先,我們還是從最簡單的入手吧,這里,最簡單的自然莫過于“按鍵返回”控件了,那么我們嘗試下從Y0一直按到Y(jié)5,看下串口助手會返回什么:
我們先來分析一下第一幀數(shù)據(jù):5A A5 06 83 00 20 01 00 01,根據(jù)迪文DGUS指令說明中提到的,我們可以清楚地知道,在這一幀數(shù)據(jù)中:
5A A5為數(shù)據(jù)幀的幀頭;06為數(shù)據(jù)長度,即:從該為開始后面數(shù)據(jù)的個數(shù);83為指令;00 20 為變量的地址;01 為從地址0x0020開始,返回的數(shù)據(jù)個數(shù);00 01為變量的值
再回想上一講我們建工程時定義的“按鍵返回”觸控變量的地址以及鍵值,我們就很容易理解串口返回的這幾串數(shù)據(jù)意義了,也就是說,當我們收到5A A5 06 83 00 20 01 00 01這串數(shù)據(jù)時,我們就知道是Y0按下了;當我們收到5A A5 06 83 00 20 01 00 02這串數(shù)據(jù)時,就知道是Y1按下……依次,我們就能識別到某一時刻,觸摸屏上的那個按鍵被按下了。
接下來,我們繼續(xù)來學習一下,如何往DGUS屏中的“數(shù)據(jù)變量顯示”控件中寫數(shù)據(jù)。這個地方就需要用到了DGUS屏的82指令—寫數(shù)據(jù)存儲區(qū)指令。我們直接看下《迪文DGUS指令說明》中的介紹吧:
相信看到這里,大家應該很明白了,比如,我要往地址為0x0010的“定時閃爍”數(shù)據(jù)變量顯示控件中寫一個數(shù)字“1”,那么我們只需要給對觸摸屏發(fā)送指令:5A A5 05 82 00 10 00 01就可以了,同樣,我們打開串口助手,將波特率什么的都設置好,然后再發(fā)送區(qū)輸入指令:5A A5 05 82 00 10 00 01,注意,這里發(fā)送的所有數(shù)據(jù)都是十六進制數(shù)。
指令發(fā)送完成后,我們可以看下觸摸屏上地址為0x0010這個變量值是不是就真的會顯示為1呢?
納尼?說的好“1”呢?怎么會變成65536?什么鬼?頓時心里一陣納悶有木有?納悶就對了,是不是大家都忘記了之前我們定義這個變量的數(shù)據(jù)類型的時候選擇的是“無符號長整數(shù)(4字節(jié))”了?那么就意味著,他在存儲區(qū)中實際上是占了兩個地址,即:0x0010和0x0011,不信的話,讀者可以自己嘗試一下,先往0x0010寫個0,然后再往0x0011寫個1,看下觸摸屏上是不是就會顯示1了呢?答案是肯定的!
-
單片機
+關注
關注
6037文章
44561瀏覽量
635650 -
DGUS屏
+關注
關注
0文章
10瀏覽量
3472
發(fā)布評論請先 登錄
相關推薦
評論