版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
4.1電容式觸摸屏驅(qū)動本章主要講述電容式觸摸屏驅(qū)動方法。通過學(xué)習(xí)本節(jié)將能夠了解電容式觸摸屏驅(qū)動方法。通過本節(jié)學(xué)習(xí)可以熟悉:電容式觸摸屏工作原理觸摸屏模組硬件接入CST816D觸控芯片觸控驅(qū)動開發(fā)電容式觸摸屏工作原理觸摸屏模組硬件接入CST816D觸控芯片觸控驅(qū)動開發(fā)電容式觸摸屏工作原理(1/3)
通常將帶觸摸控制功能的LCD屏稱為觸摸屏模組,它是由負責(zé)獲取用戶觸控坐標的觸摸屏模塊與負責(zé)顯示輸出信息的LCD模塊組成,如圖所示:電容式觸摸屏工作原理(2/3)
電容觸摸屏原理相當(dāng)于在屏幕上鋪上了一層透明的矩陣鍵盤,每個按鍵對應(yīng)屏幕不同的坐標值。通過人體的導(dǎo)電特性,當(dāng)觸摸屏幕時,相當(dāng)于按下觸控位置相應(yīng)的按鍵,然后通過矩陣鍵盤的行列線掃描,找出按下的按鍵,從而獲取觸控位置的坐標值,如圖所示:電容式觸摸屏工作原理(3/3)
為了降低開發(fā)難度,觸摸屏行列線的掃描與轉(zhuǎn)換坐標的工作通常由一個觸控芯片負責(zé)完成。CST816D觸控芯片,作為一款高性能的自電容觸控芯片,廣泛應(yīng)用于1.8寸屏幕的觸摸屏行列線掃描與坐標轉(zhuǎn)換。該芯片通過SnL與SnR引腳掃描觸摸屏的行列線,當(dāng)用戶操作觸摸屏?xí)r,通過IRQ引腳輸出上升沿或下降沿電平變化,產(chǎn)生中斷信號以通知程序接收數(shù)據(jù)。此外,CST816D通過SCL與SDA的I2C接口輸出觸控坐標值,并通過RST引腳實現(xiàn)芯片的復(fù)位及啟動。電容式觸摸屏工作原理觸摸屏模組硬件接入CST816D觸控芯片觸控驅(qū)動開發(fā)觸摸屏模組硬件接入(1/2)采用1.54寸240x240分辨率觸摸屏模組如圖所示,觸摸屏使用CST816D觸控芯片。觸摸屏模組電路如圖所示:觸摸屏模組硬件接入(2/2)
根據(jù)轉(zhuǎn)接板的標識,將觸摸屏模組的排線接入轉(zhuǎn)接板,然后再將轉(zhuǎn)接板與開發(fā)板的引腳連接如下:
轉(zhuǎn)接板
開發(fā)板
INT
-------
IO00
RST
-------
IO01
SCL
-------
IO14
SDA
-------
IO13
VCC
-------
3.3V
GND
-------
GND電容式觸摸屏工作原理觸摸屏模組硬件接入CST816D觸控芯片觸控驅(qū)動開發(fā)CST816D觸控芯片(1/3)
觸控芯片CST816D本質(zhì)上就是一個嵌入式計算機系統(tǒng),運行著觸摸屏處理的固件程序。它通過I2C接口接收配置信息,并輸出觸控信息。在與開發(fā)板的通信中,通過數(shù)據(jù)手冊提供的信息可獲知,它扮演著I2C設(shè)備從機角色,使用0x15設(shè)備地址,同時觸控芯片內(nèi)部存著多個寄存器,用于配置或獲取觸控信息,關(guān)鍵寄存器如圖所示:CST816D觸控芯片(2/3)
地址0x01的寄存器值可獲取用戶觸屏的操作類型;地址0x02的寄存器值可獲取觸屏?xí)r的點數(shù),注意CST816D只能支持單點觸摸;地址0x03、0x04寄存器值可獲取觸點的X坐標值;而地址0x05、0x06寄存器值可獲取觸點的Y坐標值。同時數(shù)據(jù)手冊提供了通過I2C接口配置觸控芯片內(nèi)部寄存器值的通信時序,設(shè)置芯片內(nèi)部0x1F地址的寄存器值為0x01的通信過程如圖所示:CST816D觸控芯片(3/3)
在數(shù)據(jù)手冊中也提供了通過I2C接口連續(xù)讀出觸控芯片內(nèi)部多個寄存器值的通信時序,連續(xù)讀出地址0x21、0x22、0x23寄存器值的通信過程如圖所示:電容式觸摸屏工作原理觸摸屏模組硬件接入CST816D觸控芯片觸控驅(qū)動開發(fā)觸控驅(qū)動開發(fā)(1/5)
在源碼工程的app目錄下創(chuàng)建IoTTouchSwitch文件夾,用于存放當(dāng)前項目所有的源文件及文件夾。接著創(chuàng)建用于實現(xiàn)主程序的IoTMain文件夾,與觸控驅(qū)動的IoTTouchScreen文件夾。在觸控驅(qū)動目錄創(chuàng)建IoTTouchScreen.h頭文件里,聲明觸屏使用的IO口與回調(diào)函數(shù)原型等信息,頭文件具體內(nèi)容如下:#ifndef__IOT_TOUCH_SCREEN_H#define__IOT_TOUCH_SCREEN_H#defineTS_SDA
HI_IO_NAME_GPIO_13
//I2C數(shù)據(jù)引腳#defineTS_SCL
HI_IO_NAME_GPIO_14
//I2C時鐘引腳#defineRSTIO
HI_IO_NAME_GPIO_1
//復(fù)位引腳#defineINTIO
HI_IO_NAME_GPIO_0//中斷引腳#defineDEV_ADDR
0x15//觸控芯片的I2C設(shè)備地址typedefvoid(*IoTTsDownHandler)(intx,inty);//聲明觸屏按下時的回調(diào)函數(shù)原型typedefvoid(*IoTTsUpHandler)(void);//聲明觸屏松手時的回調(diào)函數(shù)原型voidIoTTsRegisterCallback(IoTTsDownHandlerdownHandler,IoTTsUpHandlerupHandler);//注冊觸屏回調(diào)函數(shù)#endif觸控驅(qū)動開發(fā)(2/5)IoTTouchScreen.c源文件關(guān)鍵函數(shù)功能:voidIoTTsRegisterCallback(IoTTsDownHandlerdownCb,IoTTsUpHandlerupCb)//記錄觸屏操作的回調(diào)函數(shù)地址staticvoidtsDown(intx,inty);//觸屏按下觸發(fā)調(diào)用回調(diào)函數(shù)staticvoidtsUp()//觸屏松手時觸發(fā)調(diào)用回調(diào)函數(shù)staticvoidlcdTsGpioInit()//I2C初始化、IO口初始化與注冊中斷staticvoidCST816_WR_Reg(hi_u8*buf,hi_u8len);//配置觸控芯片寄存器staticintCST816_RD_Reg(hi_u8reg,hi_u8*buf,hi_u8len);//連續(xù)讀出多個觸控芯片寄存器值staticvoidtsIsr(void*arg);//觸屏中斷函數(shù),喚醒線程,讓其接收處理觸點坐標staticvoid*threadFunc(void*arg);//讀取觸屏坐標的線程函數(shù)voidIoTTsInit(){lcdTsGpioInit();//觸摸屏初始化//信號量初始化//創(chuàng)建循環(huán)讀取觸屏坐標的線程}觸控驅(qū)動開發(fā)(3/5)在IoTTouchScreen目錄下創(chuàng)建BUILD.gn編譯配置文件,并輸入內(nèi)容如下:static_library("IoTTouchScreen"){sources=["IoTTouchScreen.c",]include_dirs=["./","http://utils/native/lite/include","http://kernel/liteos_m/kal/cmsis","http://base/iot_hardware/peripheral/interfaces/kits","http://device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/components/lib/libc/musl/include",]}觸控驅(qū)動開發(fā)(4/5)
觸控模塊功能已完成,接下來在IoTMain模塊中測試調(diào)用并獲取觸屏坐標。在IoTMain目錄下創(chuàng)建IoTMain.c源文件。IoTMain.c關(guān)鍵代碼:staticvoidtsDown(intx,inty){printf("tsdown:%d,%d\n",x,y);}staticvoidtsUp(){printf("tsup\n");}voidIoTMainInit(){IoTTsRegisterCallback(tsDown,tsUp);//注冊觸屏?xí)r觸發(fā)的回調(diào)函數(shù)}APP_FEATURE_INIT(IoTMainInit)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年上海中醫(yī)藥大學(xué)附屬曙光醫(yī)院安徽醫(yī)院勞務(wù)派遣窗口收費崗招聘備考題庫(第二批)帶答案詳解
- 2026年吉林大學(xué)白求恩第一醫(yī)院生物備考題庫學(xué)實驗室招聘備考題庫及1套參考答案詳解
- 2025年樂清市城德城市服務(wù)有限公司公開招聘工作人員的備考題庫完整答案詳解
- 2026年北京一零一中教育集團礦大分校招聘備考題庫及答案詳解參考
- 2026年三亞市投資促進局招聘備考題庫完整參考答案詳解
- 2026年中國建筑土木建設(shè)有限公司山東分公司招聘備考題庫帶答案詳解
- 2026年東莞濱海灣未來學(xué)校招聘科創(chuàng)實驗室研究員備考題庫附答案詳解
- 2026年中國食品安全報河南記者站招聘備考題庫及參考答案詳解1套
- 2025年龍巖學(xué)院后勤基建處公開招聘工程師備考題庫及完整答案詳解一套
- 福建省莆田市七中2026屆高二上數(shù)學(xué)期末綜合測試試題含解析
- 6.1.3化學(xué)反應(yīng)速率與反應(yīng)限度(第3課時 化學(xué)反應(yīng)的限度) 課件 高中化學(xué)新蘇教版必修第二冊(2022-2023學(xué)年)
- 2026屆北京市清華大學(xué)附中數(shù)學(xué)高二上期末調(diào)研模擬試題含解析
- 2026年馬年德育實踐作業(yè)(圖文版)
- 醫(yī)院實習(xí)生安全培訓(xùn)課課件
- 四川省成都市武侯區(qū)西川中學(xué)2024-2025學(xué)年八上期末數(shù)學(xué)試卷(解析版)
- 2026年《必背60題》抖音本地生活BD經(jīng)理高頻面試題包含詳細解答
- 土方回填工程質(zhì)量控制施工方案
- 2024人教版七年級數(shù)學(xué)上冊全冊教案
- 狀語從句精講課件
- JJG544-2011《壓力控制器檢定規(guī)程》規(guī)程試題試題
- 施工現(xiàn)場車輛進出沖洗記錄
評論
0/150
提交評論