日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

STM32之触摸屏

發布時間:2023/12/19 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 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 triggeringof interrupts when the PENIRQ output is disabled in thecases 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 芯片手冊》

總結

以上是生活随笔為你收集整理的STM32之触摸屏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。