版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
STM32SPI驅(qū)動(dòng)觸摸屏(XPT2046)(上)觸摸屏又稱觸控面板,它是一種把觸摸位置轉(zhuǎn)化成坐標(biāo)數(shù)據(jù)的輸入設(shè)備觸摸屏可以分為電阻式觸摸屏和電容式觸摸屏。這里用電阻式觸摸屏來(lái)實(shí)現(xiàn)觸摸控制。電阻式觸摸屏結(jié)構(gòu)如下圖所示,主要由表面硬涂層、兩個(gè)ITO層、間隔點(diǎn)以及玻璃底層構(gòu)成,這些結(jié)構(gòu)層都是透明的,整個(gè)觸摸屏覆蓋在液晶面板上,透過(guò)觸摸屏可看到液晶面板。表面涂層起到保護(hù)作用,玻璃底層起承載的作用,而兩個(gè)ITO層是觸摸屏的關(guān)鍵結(jié)構(gòu),它們是涂有銦錫金屬氧化物的導(dǎo)電層。兩個(gè)ITO層之間使用間隔點(diǎn)使兩層分開(kāi),當(dāng)觸摸屏表面受到壓力時(shí),表面彎曲使得上層ITO與下層ITO接觸,在觸點(diǎn)處連通電路。兩個(gè)ITO涂層的兩端分別引出X-、X+、Y-、Y+四個(gè)電極,通過(guò)這些電極,外部電路向這兩個(gè)涂層可檢測(cè)電壓。當(dāng)觸摸屏被按下時(shí),兩個(gè)ITO層相互接觸,從觸點(diǎn)處把ITO層分為兩個(gè)電阻,且由于ITO層均勻?qū)щ?,兩個(gè)電阻的大小與觸點(diǎn)離兩電極的距離成比例關(guān)系,利用這個(gè)特性,可通過(guò)以下過(guò)程來(lái)檢測(cè)坐標(biāo),這也正是電阻觸摸屏名稱的由來(lái)。計(jì)算X坐標(biāo)時(shí),在X+電極施加驅(qū)動(dòng)電壓Vref,X-極接地,所以X+與X-處形成了勻強(qiáng)電場(chǎng),而觸點(diǎn)處的電壓通過(guò)Y+電極采集得到,由于ITO層均勻?qū)щ?,觸點(diǎn)電壓與Vref之比等于觸點(diǎn)X坐標(biāo)與屏寬度之比,從而:x=Vy+/Vref*Width計(jì)算Y坐標(biāo)時(shí),在Y+電極施加驅(qū)動(dòng)電壓Vref,Y-極接地,所以Y+與Y-處形成了勻強(qiáng)電場(chǎng),而觸點(diǎn)處的電壓通過(guò)X+電極采集得到,由于ITO層均勻?qū)щ?,觸點(diǎn)電壓與Vref之比等于觸點(diǎn)Y坐標(biāo)與屏高度之比,從而:y=Vy+/Vref*Height這里采用XPT2046芯片作為觸摸控制芯片,XPT2046芯片控制4線電阻觸摸屏,STM32與XPT2046采用SPI通訊獲取采集得到的電壓,然后轉(zhuǎn)換成坐標(biāo)。XPT2046原理框XPT2046典型應(yīng)用圖XPT2046是一種典型的逐次逼近型模數(shù)轉(zhuǎn)換器(SARADC),包含了采樣/保持、模數(shù)轉(zhuǎn)換、串口數(shù)據(jù)輸出等功能。同時(shí)芯片集成有一個(gè)2.5V的內(nèi)部參考電壓源、溫度檢測(cè)電路,工作時(shí)使用外部時(shí)鐘。XPT2046可以單電源供電,電源電壓范圍為2.7V~5.5V。參考電壓值直接決定ADC的輸入范圍,參考電壓可以使用內(nèi)部參考電壓,也可以從外部直接輸入1V~VCC范圍內(nèi)的參考電壓(要求外部參考電壓源輸出阻抗低)。X、Y、Z、VBAT、Temp和AUX模擬信號(hào)經(jīng)過(guò)片內(nèi)的控制寄存器選擇后進(jìn)入ADC,ADC可以配置為單端或差分模式。選擇VBAT、Temp和AUX時(shí)可以配置為單端模式;作為觸摸屏應(yīng)用時(shí),可以配置為差分模式,這可有效消除由于驅(qū)動(dòng)開(kāi)關(guān)的寄生電阻及外部的干擾帶來(lái)的測(cè)量誤差,提高轉(zhuǎn)換準(zhǔn)確度。XPT2046的內(nèi)部2.5V參考電壓源可通過(guò)控制位PD1進(jìn)行關(guān)閉或者打開(kāi)。一般地,內(nèi)部參考電壓只用于單端模式下Vbatt、Temp和AUX輸入測(cè)量。使用差分模式,觸摸屏可以獲得最佳性能。外部參考電壓+REF和-REF之間的電壓差決定了模擬輸入的電壓范圍。XPT2046的參考電壓輸入范圍為1V~VCC。參考電壓越低,則ADC輸出的二進(jìn)制數(shù)據(jù)結(jié)果每一個(gè)數(shù)字位所代表的模擬電壓也越低。在12位工作方式下,數(shù)據(jù)結(jié)果的最低位所代表的模擬電壓為VREF/4096,其余位依此類推。因此,參考電壓越低,干擾引入的誤差會(huì)越大,此時(shí)要求盡可能使用低噪聲、低波動(dòng)的參考電壓源;在設(shè)計(jì)電路板時(shí),盡可能減少干擾,輸入的信號(hào)噪音也不能太高,否則會(huì)直接影響轉(zhuǎn)換精度。單端工作模式SER/DFR置為高電平時(shí),XPT2046工作在為單端模式,單端工作模式的應(yīng)用原理如下圖所示。單端模式簡(jiǎn)單,在采樣過(guò)程完成后,轉(zhuǎn)換過(guò)程中可以關(guān)閉驅(qū)動(dòng)開(kāi)關(guān),降低功耗。但這種模式的缺點(diǎn)是精度直接受參考電壓源的精度限制,同時(shí)由于內(nèi)部驅(qū)動(dòng)開(kāi)關(guān)的導(dǎo)通電阻存在,導(dǎo)通電阻與觸摸屏電阻的分壓作用,也會(huì)帶來(lái)測(cè)量誤差。差分工作模式SER/DFR置為低電平時(shí),XPT2046為差分工作模式,如下圖所示。差分模式的優(yōu)點(diǎn)是:+REF和-REF的輸入分別直接接到Y(jié)P、YN上,可消除由于驅(qū)動(dòng)開(kāi)關(guān)的導(dǎo)通電阻引入的坐標(biāo)測(cè)量誤差。缺點(diǎn)是:無(wú)論是采樣還是轉(zhuǎn)換過(guò)程中,驅(qū)動(dòng)開(kāi)關(guān)都需要接通,相對(duì)單端模式而言,功耗增加了。XPT2046模擬輸入簡(jiǎn)圖差分模式輸入配置表中說(shuō)明了A2、A1、A0和SER/DFR控制位與XPT2046的配置關(guān)系。這些控制位來(lái)自DIN腳的串行數(shù)據(jù)。XPT2046是用來(lái)采集觸摸屏觸摸點(diǎn)的水平位置與垂直位置的。由表可知,測(cè)量Y位置時(shí),需將A2A1A0設(shè)置為001,此時(shí)驅(qū)動(dòng)的模擬輸入為YP和YN:測(cè)量X位置時(shí),需將A2A1A0設(shè)置為101,此時(shí)驅(qū)動(dòng)的模擬輸入為XP和XN。其他兩行用于測(cè)量觸模時(shí)作用于屏幕上的壓力,這里忽略??刂谱值目刂莆幻羁刂谱止?jié)各位描述如果采用單端模式測(cè)量X坐標(biāo)、Y坐標(biāo)和觸摸壓力,則需要添加一個(gè)外部參考電壓,并且XPT2046的電源也必須來(lái)自這個(gè)外部參考源。需要特別注意的一點(diǎn)是,當(dāng)使用單端模式時(shí),輸入ADC的電壓不能超過(guò)內(nèi)部參考電壓,尤其是當(dāng)工作電壓大于2.7V的時(shí)候。注意:差分模式僅用于X坐標(biāo)、Y坐標(biāo)和觸摸壓力的測(cè)量,其它測(cè)量要求采用單端模式。XPT2046的數(shù)據(jù)接口是串行的,通過(guò)該接口可輕易地與單片機(jī)或處理器完成互連,處理器和轉(zhuǎn)換器之間的通信需要8個(gè)時(shí)鐘周期,通過(guò)這8個(gè)時(shí)鐘周期來(lái)確定XPT72046轉(zhuǎn)換的模擬通道及采用的轉(zhuǎn)換模式。一次完整的轉(zhuǎn)換需要24個(gè)串行同步時(shí)鐘來(lái)完成。前8個(gè)時(shí)鐘用來(lái)通過(guò)DIN引腳輸入控制命令(字節(jié)),當(dāng)轉(zhuǎn)換器獲取有關(guān)下一次轉(zhuǎn)換的足夠信息后,接著根據(jù)獲得的信息設(shè)置輸入多路選擇器和參考源輸入,并進(jìn)入采樣模式,如果需要,將啟動(dòng)觸摸面板驅(qū)動(dòng)器,3個(gè)多時(shí)鐘周期后,控制字節(jié)設(shè)置完成,轉(zhuǎn)換器進(jìn)入轉(zhuǎn)換狀態(tài)。這時(shí),輸入采樣保持器進(jìn)入保持狀態(tài),觸摸面板驅(qū)動(dòng)器停止工作(單端工作模式)。接著的12個(gè)時(shí)鐘周期將完成真正的模數(shù)轉(zhuǎn)換。在差分模式時(shí),驅(qū)動(dòng)器在轉(zhuǎn)換過(guò)程中將一直工作,第13個(gè)時(shí)鐘將輸出轉(zhuǎn)換結(jié)果的最后一位。剩下的3個(gè)多時(shí)鐘周期將用來(lái)完成被轉(zhuǎn)換器忽略的最后字節(jié)(DOUT輸出0)。XPI204624周期的轉(zhuǎn)換時(shí)序如圖所示:由圖可知??刂谱止?jié)由DIN送入XPT2046,其包括啟動(dòng)轉(zhuǎn)換位、尋址位,ADC分辨率設(shè)置位,單端/差分設(shè)置位和掉電控制位,起始位是拉制字的首位,取值恒為1,在DIN引腳檢測(cè)到起始位前,所有的輸入都將被忽略。尋址位即A2A1A0,由表可知,當(dāng)A2A1A0為001時(shí),XPT2046采集Y位置,當(dāng)A2A1A0為101時(shí),XPT2046采集X位置。MODE位為模式選擇位,其用于設(shè)置ADC分辨率,當(dāng)MODE為0時(shí),下一次轉(zhuǎn)換將是12位模式:當(dāng)MODE為1時(shí),下一次轉(zhuǎn)換將是8位模式。SER/DFR位用于選擇參考源的模式,當(dāng)SER/DFR為1時(shí),選擇單端模式;當(dāng)SER/DFR為0時(shí),選擇差分模式,為提高AD轉(zhuǎn)換的精度并消除測(cè)量誤差,這里選擇12位轉(zhuǎn)換模式和差分模式。最后兩位用于掉電控制,這里將之配置為00,即在兩次AD轉(zhuǎn)換之間掉電,下次轉(zhuǎn)換一開(kāi)始,芯片立即進(jìn)入完全上電狀態(tài),而無(wú)需額外延時(shí),另外,此時(shí)PENIRQ是一直使能的。分析可得轉(zhuǎn)換X通道時(shí)所對(duì)應(yīng)的控制字為0xD0,轉(zhuǎn)換Y通道時(shí)所對(duì)應(yīng)的控制字為0x90。為方便使用,將這兩個(gè)控制字定義為宏:#defineX_CMD0XD0#defineY_CMD0X90接著開(kāi)始編寫觸摸屏程序,原理圖如下:引腳分別是T_MOSI:PF11、T_MISO:PB2、T_CS:PC13、T_CLK:PB0、T_PEN:PB1。為方便調(diào)用對(duì)引腳進(jìn)行的控制進(jìn)行宏定義,。#defineT_CS_H()do{GPIOC->BSRRL=1<<
13;}while(0)#defineT_CS_L()do{GPIOC->BSRRH=1<<
13;}while(0)#defineT_CLK_H()do{GPIOB->BSRRL=1<<
0;}while(0)#defineT_CLK_L()do{GPIOB->BSRRH=1<<
0;}while(0)#defineT_MOSI_H()do{GPIOF->BSRRL=1<<
11;}while(0)#defineT_MOSI_L()do{GPIOF->BSRRH=1<<
11;}while(0)初始化引腳:voidTouch_gpio_Init(){//1.開(kāi)時(shí)鐘RCC->AHB1ENR|=1<<
1|1<<
2|1<<
5;//2.模式、類型、速度、上下拉//PB1/2:輸入GPIOB->MODER&=~(0XF<<
2);GPIOB->PUPDR&=~(0XF<<
2);GPIOB->PUPDR|=(0x1<<
2);//PB0:GPIOB->MODER&=~(0X3<<
0);GPIOB->MODER|=1<<
0;GPIOB->OTYPER&=~(1<<
0);//推挽GPIOB->OSPEEDR&=~(0X3<<
0);//2mHZGPIOB->PUPDR&=~(0X3<<
0);//無(wú)上下拉//PC13GPIOC->MODER&=~(0X3<<
26);GPIOC->MODER|=1<<
26;GPIOC->OTYPER&=~(1<<
13);//推挽GPIOC->OSPEEDR&=~(0X3<<
26);//2mHZGPIOC->PUPDR&=~(0X3<<
26);//無(wú)上下拉//PF11GPIOF->MODER&=~(0X3<<
22);GPIOF->MODER|=1<<
22;GPIOF->OTYPER&=~(1<<
11);//推挽GPIOF->OSPEEDR&=~(0X3<<
22);//2mHZGPIOF->PUPDR&=~(0X3<<
22);//無(wú)上下拉//3.初始狀態(tài)T_CS_H();//片選信號(hào)低電平有效,初始時(shí)不片選T_CLK_L();}初始化完成,根據(jù)時(shí)序編寫對(duì)X或Y通道完成一次轉(zhuǎn)換的函數(shù)實(shí)現(xiàn)u16Touch_GetADC(u8cmd){u8i=0;u16res=0;T_CLK_L();T_CS_L();Delay_us(1);for(i=0;i<8;i++){if(cmd&0x80)T_MOSI_H();//數(shù)據(jù)有效輸出高電平elseT_MOSI_L();//數(shù)據(jù)有效輸出低電平Delay_us(1);T_CLK_H();Delay_us(1);T_CLK_L();Delay_us(1);cmd<<=1;}T_CLK_H();//ADC需要一個(gè)周期Delay_us(1);res=0;for(i=0;i<15;i++){res<<=1;//空出最低位,準(zhǔn)備接收T_CLK_L();Delay_us(1);T_CLK_H();Delay_us(1);if(GPIOB->IDR&(1<<
2))res|=1;Delay_us(1);}T_CLK_L();Delay_us(1);T_CS_H();res>>=3;//最低3位是補(bǔ)充的0,移掉不要returnres;}有了上面的函數(shù),只需依次送入X通道的控制字節(jié)和Y通道的控制字節(jié),即可在一次接觸后,獲取接觸點(diǎn)x、y方向的AD值。但針對(duì)AD轉(zhuǎn)換,為了提高轉(zhuǎn)換的準(zhǔn)確性,這里采用中值平均濾波算法進(jìn)行濾波。中值平均算法即將獲取的AD值通過(guò)冒泡法排序,然后掐頭去尾,取平均值并返回。具體如下:u16Touch_GetAvgADC(u8cmd,u16*buf,u8size){u8i=0,j=0;u16temp=0;floatres=0;for(i=0;i<size;i++)buf[i]=Touch_GetADC(cmd);for(i=0;i<size-1;i++){for(j=i+1;j<size;j++){if(buf[i]接著,就可以用這個(gè)函數(shù)得到一個(gè)點(diǎn)的坐標(biāo)。先把點(diǎn)的坐標(biāo)定義為結(jié)構(gòu)體:typedefstruct{u16x;u16y;}Point_Typedef;通過(guò)筆中斷引腳判斷是否有觸摸動(dòng)作,然后分別讀出X和Y的ADC值并返回出
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版旅游服務(wù)貨款擔(dān)保合同范本3篇
- 2025年食堂食品安全監(jiān)督服務(wù)合同3篇
- 2025版二零二五苗木種植與城市綠化工程合作合同3篇
- 2025年高科技產(chǎn)品外貿(mào)經(jīng)銷代理合同范本3篇
- 2025年食堂蔬菜定制化種植合作合同3篇
- 云母制品在醫(yī)療器械中的應(yīng)用探索考核試卷
- 二零二五年度木門安裝與室內(nèi)智能家居系統(tǒng)集成合同4篇
- 2025版學(xué)校宿管員招聘、培訓(xùn)與薪酬合同3篇
- 2025版國(guó)務(wù)院辦公廳事業(yè)單位教師聘用合同細(xì)則3篇
- 2025年倉(cāng)庫(kù)貨物存儲(chǔ)及保管合同
- GB/T 45120-2024道路車輛48 V供電電壓電氣要求及試驗(yàn)
- 春節(jié)文化常識(shí)單選題100道及答案
- 12123交管學(xué)法減分考試題及答案
- 24年追覓在線測(cè)評(píng)28題及答案
- 魚菜共生課件
- 《陸上風(fēng)電場(chǎng)工程概算定額》NBT 31010-2019
- 初中物理八年級(jí)下冊(cè)《動(dòng)能和勢(shì)能》教學(xué)課件
- 高考滿分作文常見(jiàn)結(jié)構(gòu)
- 心肌梗死診療指南
- 原油脫硫技術(shù)
- GB/T 2518-2019連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
評(píng)論
0/150
提交評(píng)論