五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

TFTLCD 開發(fā)記錄 -- 7、觸摸屏驅動

2023-10-12 23:29 作者:茄子土豆地三鮮  | 我要投稿

????????本文使用到的硬件詳情請參見對應文檔:軟硬件介紹

????????https://www.bilibili.com/read/cv26771439/?spm_id_from=333.999.0.0

????????其中7寸觸摸屏驅動芯片使用的是GT911,所以,要操作觸摸屏首先要編寫GT911的驅動代碼。通過參考GT911的數(shù)據(jù)手冊發(fā)現(xiàn),要驅動它,原理比較簡單,就是使用IIC發(fā)送對應寄存器指令即可。

????????首先,要保證IIC協(xié)議可以正常通信,本文使用IO口軟件模擬IIC時序,實現(xiàn)IIC通信。IIC通信比較基礎,較常用,這里不中詳細說明,若有需要,請去本文對應的開源地址GitHub上下載源碼。

接下來就是實現(xiàn)GT911通過IIC讀寫寄存器操作。

寫寄存器:

讀寄存器數(shù)據(jù):


????????然后是GT911的初始化操作,gt911和其他基于i2c的芯片略有不同,它可以通過,外部引腳INT和RST引腳改變他的地址,一般地址默認是0xBA,通過用INT和RESET引腳可以輸入特定的時序,改變他的地址,變?yōu)?x28,或者變回0xBA,具體時序圖可參見手冊。

編寫一個修改IIC地址的函數(shù)


????????以上操作正常之后,GT911芯片就正常工作了,此時可以讀一下芯片ID,看看督導的ASCII碼是否為“911”,是就表示芯片初始化成功,可以讀取觸摸屏數(shù)據(jù)了。

????????讀取觸摸屏數(shù)據(jù)需要先判斷屏幕上是否有觸摸事件產(chǎn)生,要先讀取0x814E寄存其中的標志位,判斷是否被按下


????????當有觸摸時,寄存器0x814E的最高位(bit7)位會被置位為1, 低4位為觸摸的點的數(shù)量, 最多支持5個點。我們只要在while中不斷輪詢判斷, 寄存器最高位是否置位,就可以知道, 屏幕是否被觸摸,這里需要注意,輪詢時間布特太短否則會出現(xiàn)異常, 手冊上的參考時間是7.5ms~10ms,另外,當讀完寄存器0x814E后, 要手動清0該寄存器, 表示已讀, 要不然會不斷輸出中斷信號。

觸摸后,讀數(shù)據(jù)寄存器即可得到觸摸點的坐標信息:


????????每個位置信息都由16+16+16位數(shù)據(jù)表示, 第一個16位是x的位置數(shù)據(jù), 第二個16位是y的位置數(shù)據(jù), 第三個是位置上的觸摸面積。每個16位又由兩個寄存器的8位數(shù)據(jù)構成,先是低8位,后是高8位。寄存器0x8150中讀出x的低8位數(shù)據(jù),然后讀出寄存器0x8151讀出x的高8位數(shù)據(jù),把數(shù)據(jù)組合成x的16位的數(shù)據(jù),y的數(shù)據(jù), 觸摸面積數(shù)據(jù)讀出方式一樣。

代碼如下所示:


????????至此,GT911觸摸屏驅動編寫完成,最后可以測試下是否正常,這里的測試方法是,結合上篇文章,檢測到觸摸點后,在觸摸點處畫一個半徑5的實心圓,測試代碼截圖如下:

最終效果如下圖:

????????視頻演示效果請轉至(開源)TFTLCD開發(fā)記錄--觸摸屏

????????視頻下方簡介有完整的工程代碼開源github上,有需要的小伙伴請自行下載在


TFTLCD 開發(fā)記錄 -- 7、觸摸屏驅動的評論 (共 條)

分享到微博請遵守國家法律
榕江县| 贞丰县| 盘山县| 任丘市| 峨边| 临安市| 卢湾区| 宁武县| 偏关县| 旌德县| 宜州市| 两当县| 商水县| 措勤县| 东阳市| 新绛县| 岳阳县| 饶河县| 汾阳市| 临颍县| 安国市| 周至县| 潮州市| 平定县| 泽库县| 淄博市| 丹巴县| 沁水县| 丹寨县| 潜江市| 泰安市| 尼勒克县| 永胜县| 万全县| 临澧县| 遵化市| 偃师市| 华池县| 尼勒克县| 阳新县| 社会|