接下來,我們就需要用串口助手來驗證一下,我們新建的DGUS工程有沒有問題了,首先,我們還是從最簡單的入手吧,這里,最簡單的自然莫過于“按鍵返回”控件了,那么我們嘗試下從Y0一直按到Y5,看下串口助手會返回什么:
我們先來分析一下第一幀數據:5A A5 06 83 00 20 01 00 01,根據迪文DGUS指令說明中提到的,我們可以清楚地知道,在這一幀數據中:
5A A5為數據幀的幀頭;06為數據長度,即:從該為開始后面數據的個數;83為指令;00 20 為變量的地址;01 為從地址0x0020開始,返回的數據個數;00 01為變量的值
再回想上一講我們建工程時定義的“按鍵返回”觸控變量的地址以及鍵值,我們就很容易理解串口返回的這幾串數據意義了,也就是說,當我們收到5A A5 06 83 00 20 01 00 01這串數據時,我們就知道是Y0按下了;當我們收到5A A5 06 83 00 20 01 00 02這串數據時,就知道是Y1按下……依次,我們就能識別到某一時刻,觸摸屏上的那個按鍵被按下了。
接下來,我們繼續來學習一下,如何往DGUS屏中的“數據變量顯示”控件中寫數據。這個地方就需要用到了DGUS屏的82指令—寫數據存儲區指令。我們直接看下《迪文DGUS指令說明》中的介紹吧:
相信看到這里,大家應該很明白了,比如,我要往地址為0x0010的“定時閃爍”數據變量顯示控件中寫一個數字“1”,那么我們只需要給對觸摸屏發送指令:5A A5 05 82 00 10 00 01就可以了,同樣,我們打開串口助手,將波特率什么的都設置好,然后再發送區輸入指令:5A A5 05 82 00 10 00 01,注意,這里發送的所有數據都是十六進制數。
指令發送完成后,我們可以看下觸摸屏上地址為0x0010這個變量值是不是就真的會顯示為1呢?
納尼?說的好“1”呢?怎么會變成65536?什么鬼?頓時心里一陣納悶有木有?納悶就對了,是不是大家都忘記了之前我們定義這個變量的數據類型的時候選擇的是“無符號長整數(4字節)”了?那么就意味著,他在存儲區中實際上是占了兩個地址,即:0x0010和0x0011,不信的話,讀者可以自己嘗試一下,先往0x0010寫個0,然后再往0x0011寫個1,看下觸摸屏上是不是就會顯示1了呢?答案是肯定的!
-
單片機
+關注
關注
6043文章
44622瀏覽量
638548 -
DGUS屏
+關注
關注
0文章
10瀏覽量
3503
發布評論請先 登錄
相關推薦
單片機Debug工具性能對比 單片機調試常用命令
單片機Debug與仿真區別
單片機調試常見問題與解決方法
51單片機STC8H8K64U通過RA8889/RA8876如何控制彩屏 I2C源碼下載
![51<b class='flag-5'>單片機</b><b class='flag-5'>STC</b>8H8K64U通過RA8889/RA8876如何控制彩屏 I2C源碼下載](https://file1.elecfans.com/web2/M00/F5/17/wKgZomZ-al2AHDocABQ4vQBctks963.jpg)
單片機基本io功能調試過程
一文講解單片機、ARM、MCU、DSP、FPGA、嵌入式錯綜復雜的關系!
51單片機(STC8H8K64U/STC8051U34K64)_RA8889_HW_SPI4參考代碼(v1.3) 硬件SPI方式驅動大屏顯示
迪文串口屏基礎GUI開發流程
![<b class='flag-5'>迪</b><b class='flag-5'>文</b>串口<b class='flag-5'>屏</b>基礎GUI開發流程](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
基于單片機多功能洗衣機控制
![基于<b class='flag-5'>單片機</b>多功能洗衣<b class='flag-5'>機</b>控制](https://file1.elecfans.com/web2/M00/C4/B6/wKgZomX3o7KAc9AZAAAReeI3K9k830.jpg)
應用單片機開發的ST LINK調試器設計制作
![應用<b class='flag-5'>單片機</b>開發的ST LINK<b class='flag-5'>調試</b>器設計制作](https://file1.elecfans.com/web2/M00/C2/CB/wKgZomXn1QGAS5NHAABO4t1QoZA024.png)
評論