STM32之觸摸屏


一、觸摸屏控制器簡介

1、TSC2046概貌

2、TSC2046引腳描述

3、TSC2046應用電路

4、常見接線方法

  • YU=Y-
  • YD=Y+
  • XL=X-
  • XR=X+

二、TSC2046編程注意事項

     TSC2046的PENIRQ腳在觸摸屏被按下的時候輸出低電平,沒有按下的時候輸出高電平。需要格外注意的是在MCU給TSC2046發送命令的時候,次引腳也會產生錯誤的低電壓脈沖,0 us<t<100 us。

It is recommended that the processor mask the interruptPENIRQ is associated with whenever the processor sendsa control byte to the TSC2046. This prevents false triggering of interrupts when the PENIRQ output is disabled in the cases discussed in this section.

                                  摘自:《TSC2046 芯片手冊》

   為了消除這種錯誤的觸發,在發送命令之前先禁止TSC2046的中斷線,發送命令后再重新使能中斷。

/*
****************************************************************************************************
*    函 數 名: TSC2046_ReadAdc
*    功能說明: 選擇一個模擬通道,啟動ADC,並返回ADC采樣結果
*    形    參:_ucCh = 0x90 表示Y通道; 0xd0 表示X通道
*    返 回 值: 12位ADC值
****************************************************************************************************
*/
uint16_t XPT2046_ReadAdc(uint8_t _ucCh)
{
    uint16_t dat;
 
    EXTI_IRQ_Cmd( EXTI_Line4,DISABLE);      //發送命令時會產生誤中斷信號,屏蔽中斷
    
    XPT2046_WriteCMD(_ucCh);  
    dat = XPT2046_ReadCMD();
    
    EXTI_ClearITPendingBit(EXTI_Line4);      //產生的誤中斷信號會將中斷標志位置1
    EXTI_IRQ_Cmd( EXTI_Line4,ENABLE);        //重新使能中斷

    return dat; 
}

三、觸摸屏操作實例

1、觸摸屏x/y方向的確定

  剛買來的觸摸屏,我們需要進行x/y方向的確定。確定方法:在進入TSC2046觸發信號引起的中斷服務程序中,通過串口打印出兩個通道的電壓值。依次獲取觸摸屏四個角的電壓值,最后就可以根據這些電壓值確定x/y的方向。

  以野火的3.2寸LCD觸摸屏為例(注意液晶屏的正方向如下方左圖所示):

2、觸摸屏矯正

  觸摸屏矯正的目的是為了獲取觸摸屏觸點電壓到LCD觸摸屏像素坐標的轉換關系。有此參數,就可以根據觸摸屏的觸點電壓找到對應的LCD上的像素點。

  試想如何根據上方的兩圖提供的數據,想出一種簡單的矯正算法。最簡單的就是:

  • 以右上角為起點,左下角為終點,也就是說右上角為(0,0),左下角為(320,240)
  • 對x方向進行320等分,對y方向進行240等分

  事實上,為了獲得較好的結果,矯正算法也是很復雜的,有現成的函數可以調用,筆者沒有去研究。

  使用者需要格外注意的是:在矯正的時候,LCD的顯示方向要與觸摸屏的方向一致,否則矯正失敗。矯正成功之后,以后就可以根據觸電電壓結合矯正參數算出LCD上對應的位置。

  在使用中,有可能LCD的顯示方向與觸摸屏的方向不一致,但是只要找到合適的對應關系,就能正確操作。舉例:

觸摸屏:
GRAM掃描方向:右上角-->左下角(橫屏)
y(240)
<------------
|                  |
|                  |
|                  |
|                  |
|                  | x
|                  | (320)
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
------------- V

BMP圖片顯示:
GRAM掃描方向:右下角-->左上角(橫屏)
y(240)
------------A
|                |
|                |
|                |
|                |
|                | x
|                | (320)
|                |
|                |
|                |
|                |
|                |
|                |
<------------

觸摸屏與BMP圖片顯示的坐標轉換關系:Y-Mirror
  X觸 = 320 - XBMP
  Y觸 = XBMP

  

參考:《TSC2046 芯片手冊》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM