您的位置 首页 主动

STM32单片机对智能手机触摸屏的驱动

STM32单片机对智能手机触摸屏的驱动-电阻触摸屏的屏体部分是一块多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的阻性材料组成的导电层(ITO膜),上面再盖有一层外表面经过硬化处理、光滑防刮的塑料层。它的内表面也涂有一层ITO,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开。

因为智能手机的开展和大屏幕的鼓起,接触屏现已得到了广泛的运用。接触屏分为两种:电阻触屏 俗称“软屏”;电容触屏俗称“硬屏”。

电阻接触屏的屏体部分是一块多层复合薄膜,由一层玻璃或有机玻璃作为底层,外表涂有一层通明的阻性资料组成的导电层(ITO膜),上面再盖有一层外外表经过硬化处理、润滑防刮的塑料层。它的内外表也涂有一层ITO,在两层导电层之间有许多细微(小于千分之一英寸)的通明阻隔点把它们离隔。当手指接触屏幕时,两层 ITO发生接触,电阻发生改变,操控器依据检测到的电阻改变来核算接触点的坐标,再按照这个坐标来进行相应的操作,因而这种技能有必要是要施力到屏幕上,才干取得接触作用。

一切的电阻式接触屏都选用分压器原理来发生代表X坐标和Y坐标的电压。

分压器是经过将两个电阻进行串联来完成的。

上面的电阻(R1)衔接正参阅电压(VREF),

下面的电阻(R2)接地。

两个电阻衔接点处的电压丈量值与下面那个电阻的阻值成正比。

所以电阻屏的定位是经过AD采样获取电压,来确认点击方位的。

电容式接触屏运用人体的电流感应进行作业,其接触屏由一块四层复合玻璃屏构成。当手指接触在接触屏上时,因为人体电场、用户和接触屏外表构成以一个耦合电容,关于高频电流来说,电容是直接导体,所以手指从接触点吸走一个很小的电流。这个电流分别从接触屏四角上的电极中流出,并且流经这四个电极的电流与手指到四角的间隔成正比,操控器经过对这四个电流份额的准确核算,得出接触点的方位信息。

两种屏幕都有其优缺点。电阻屏价格低廉,精度较高。电容屏外层能够运用玻璃,抗损性好,不容易呈现误操作,能够完成多点触控。

这儿驱动的是驱动IC为XPT2046的4线电阻式接触屏,接触屏的操控芯片许多,包含ADS7843、ADS7846、TSC2046、AK4182等。这几款芯片的驱动程序基本上都是相同的,并且封装也有相同的。

这儿运用STM32驱动XPT2046和LCD完成一个接触检测和字符显现的功用,当检测到特定方位” Click“按下后,显现一个hello world 。.

XPT2046驱动: (LCD的驱动拜见:STM32 驱动 TFT LCD):

xpt2046.cxpt2046.h

接触屏的接触检测是经过衔接XPT2046的引脚,映射为外部中止触发引脚,在有屏幕接触时,触发外部中止,所以需求装备一个外部中止函数:

stm32f10x_it.c

#include“stm32f10x_it.h”#include“xpt2046.h”//中止,检测到PEN脚的一个下降沿。//置位Pen_Point.Key_Sta为按下状况//中止线0线上的中止检测voidEXTI1_IRQHandler(void){Pen_Point.Key_Sta=Key_Down;//按键按下EXTI-》PR=1《《1;//铲除中止标志位运用库函数会呈现问题,原因不详//EXTI_ClearITPendingBit(EXTI_Line1);//这两句铲除中止次序不能倒置//EXTI_ClearFlag(EXTI_Line1);//铲除LINE1上的中止标志位}

mian()函数中调用相关函数:

intmain(void){//STM32初始化RCC_Configuration();NVIC_Configuration();USART_Configuration();SPI_Configuration();EXTI_Configuration();GPIO_Configuration();LCD_Init();Touch_Init();POINT_COLOR=BLACK;//设置字体色彩Delay(100000);LCD_ShowString(180,0,“Click”);//显现“Click”字符按钮while(1){if(Pen_Point.Key_Sta==Key_Down)//接触屏被按下{Pen_Int_Set(0);//封闭中止do{Convert_Pos();Pen_Point.Key_Sta=Key_Up;if(Pen_Point.X0》180&&Pen_Point.Y0《16)//断定按下的是否是“Click”字符按钮区域{LCD_Clear(WHITE);LCD_ShowString(3050,“HelloDog.。”);}}while(TOUCH_PEN==0);//假如PEN一向有用,则一向履行Pen_Int_Set(1);//敞开中止}}}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/346222.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部