最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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、觸摸屏驅動的評論 (共 條)

分享到微博請遵守國家法律
乐安县| 安义县| 庐江县| 宁陵县| 恩平市| 无极县| 蒙自县| 资源县| 旅游| 迁西县| 贡山| 盐源县| 桂东县| 西和县| 宝应县| 成都市| 翼城县| 自贡市| 东兰县| 温泉县| 舒兰市| 青州市| 中宁县| 南丰县| 昌平区| 望城县| 永定县| 资中县| 武义县| 青神县| 景宁| 井冈山市| 曲阳县| 谷城县| 穆棱市| 慈利县| 金寨县| 岚皋县| 大洼县| 三明市| 红原县|