目錄
1、工具準備:
2、開發流程:
3、將觸摸坐標傳到TouchGFX中:
4、GT911觸摸芯片的資訊配置表解釋
5、總結
1、工具準備:
ART-PI開發板一塊,
筆記本電腦一臺,
RT-Studio軟體,串口助手軟體,TouchGFXDesigner軟體,Visual Studio2019軟體
2、開發流程:
1、打開RT-Studio軟體,點擊新建工程,選擇ART-PI開發板即可;這個步驟網上歷程大把,這里我就不贅述了,
2、打開CRC校驗以及DMA2D,在board->cubeMX_config->core->inc->stm32H7xx_hal_conf.h如下圖所示:

3 、添加TouchGFXlib鏈接庫,gt911觸摸軟體包,C++支持,打開rt_thread Settings檔案即可添加
啟用TouchGFX 的lib庫

添加GT911觸摸驅動(我的LCD屏使用的是GT911觸摸芯片),當然若是使用的觸摸芯片不同,也可添加對應的軟體包即可,
打開IIC1(MCU與觸摸芯片的通信渠道)

點擊保存即可添加軟體包和lib庫到自己的專案工程當中(耐心等待,程序有點漫長!)
添加C++支持


3、將觸摸坐標傳到TouchGFX中:
打開libraries->touchgfx_lib->Touchgfx->target->STM32TouchController.cpp檔案,添加TouchGFX lib的支持,默認是使用的GT9147觸摸驅動的模板,這里我們只需要簡單的修改即可使用,

下面這個地方是看你讀取的觸摸坐標與你TouchGFX的是否對應,若是相反,則使用默認的這種方式,我的并沒有反,所以就是用原始的坐標資料即可

好啦,現在我們來修改里一個檔案libraries->touchgfx_lib->Touchgfx->App->sample_touch.cpp這個檔案

第一處跟上面的一樣,還有這里第二處是匯入咱們使用的GT911的頭檔案,在第三處我們設定設備名,第四處是將設備初始化函式注冊到初始化串列中(具體的資訊請查閱RTT官網檔案)
到這里,基本需要改的就已經完了!但是你以為這就行了么?不不不,你會發現你下載到板子上,你的觸摸坐標是反的,還有你的觸摸屏可能有四分之一的位置是不能獲取到坐標的,這是為什么呢?他的問題就在于GT911暫存器配置表的設定,當你去尋找這個暫存器配置表的資訊,你會發現這是一個巨大的陣列,當然,每個元素代表啥,你也不知道,但是這里最重要的幾個地方,我會在下面講解一下!
4、GT911觸摸芯片的資訊配置表解釋
資訊配置表長什么樣呢?先來看看!

這么多,咱們只關心前七個位元組,
第一個位元組:配置表的版本號,X,Y軸解析度占兩個位元組,第二、三個位元組為x軸解析度,第四、五位元組表示Y軸解析度,第六個位元組包含觸摸點個數的設定,第七個位元組包含是否交換x與y的坐標

第一個位元組:
配置資訊表的版本號!要更新配置資訊表,需要設定版本號大于之前資訊表的版本號!若版本號設定為0x00則會強制更新的!具體怎么解釋,請看下圖:

第二、三個位元組為x軸解析度,是個16bit資料,第一個位元組為資料的低8bit,第二個位元組為資料的高8bit;第四、五個位元組為Y軸解析度;
第六個位元組是這樣解釋的:
![]()
低4bit是設定觸摸點的個數的,高4位默認是0即可
第七個位元組

這里我們只用關心0-1bit,以及3bit是怎么設定的,0-1bit是選擇觸發方式,這里我使用的是中斷下降沿觸發,即01,第3bit是設定是否交換x,y坐標,根據自己的需求設定即可
下面附上GT911的資料手冊中的講解:

附上我自己的資訊配置表陣列,如果螢屏相同,應該是直接可以用的,(我這里設定的觸摸解析度是1024*600)
0x00,0x00,0x04,0x58,0x02,0x05,0x35,0x00,0x01,0x08,
0x28,0x08,0x5a,0x46,0x03,0x05,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x1a,0x1e,0x14,0x89,0x2a,0x09,
0x57,0x5c,0xb5,0x06,0x00,0x00,0x00,0x02,0x01,0x1d,
0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x46,0x82,0x94,0xc5,0x02,0x07,0x00,0x00,0x04,
0x96,0x4a,0x00,0x85,0x54,0x00,0x77,0x5f,0x00,0x6a,
0x6c,0x00,0x5f,0x7a,0x00,0x5f,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x10,0x12,
0x14,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x02,0x04,0x06,0x08,0x0a,0x0f,0x10,
0x12,0x16,0x18,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,
0x24,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01
5、總結
好啦,做完這些,你就可以放心的開始你的嵌入式GUI之旅啦!歡迎大家點贊!博主是一個又菜又愛玩的人!
文中有講的不對的地方,歡迎大家進行批評指正留言!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262468.html
標籤:其他
上一篇:智能電表的對比分析
下一篇:2048字符版C語言實作
