浅谈4线电阻触摸屏和stm32的接口实现

来源 :中国高新技术企业 | 被引量 : 0次 | 上传用户:huahua9
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:很多LCD模块都采用了电阻式触摸屏,这些触摸屏等效于将物理位置转换为代表X、Y坐标的电压值的传感器。通常由4线、5线、7线和8线触摸屏来实现,文章探讨了如何用stm32系列MCU来驱动和读写4线电阻触摸屏。
  关键词:4线电阻触摸屏;STM32;接口实现;电阻式触摸屏
  中图分类号:TP391文献标识码:A文章编号:1009-2374(2009)21-0046-02
  
  触摸屏作为一种最新的输入设备,它是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。触摸屏在我国的应用范围非常广阔,主要是公共信息的查询;如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。将来,触摸屏还要走入家庭。
  
  一、触摸屏操作原理
  
  电阻触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层,它的内表面也涂有一层涂层,在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。
  
  二、STM32的主要特性
  
  2007年6月11日,半导体制造厂商意法半导体(ST)高调推出一个新的32位微控制器系列产品STM32。它采用的微处理器是ARM公司为要求高性能(1.25DhrystoneMIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。多达128KB的嵌入式闪存、20KB的RAM和丰富的外设接口,包括两个12位模数转换器(1微秒的转换时间)、三个USART、两个SPI(18MHz主/从控制器)、两个I2C、三个16位定时器(每个定时器有4个输入捕获模块/4个输出比较器/4个PWM控制器),以及一个专门为电机控制向量驱动应用设计的内嵌死区时间控制器的6-PWM定时器、USB、CAN和7个DMA通道。内置复位电路包括上电复位、掉电复位和电压监控器,以及一个可用作主时钟的高精度工厂校准的8MHz阻容振荡器、一个使用外部晶振的4-16MHz振荡器和两个看门狗。
  (一)用stm32检测触摸
  Stm32系列mcu的I/O口可以编程配置成带上拉电阻的模式,这个特点可以用来检测有无触摸。Stm32的GPIO管脚连接触摸屏的Y+和X-,连接Y+的管脚配置成内部电阻上拉模式,连接X-的管脚配置成推挽输出低电平。如果Y+为高电平,那么就是没有触摸。如果Y+为低电平,触摸屏被压下。从高到低电平的跳变可以检测触摸,用到外部中断。
  (二)用stm32读触摸屏参数
  分两步读取X,Y坐标值。第一步,驱动Y+为高电平,Y-为低电平,接X+管脚配置成AD输入模式,检测X+的电压,此电压与驱动电压的比例即Y坐标和整个屏的高度比率。X坐标的检测也是同样。驱动X+为高电平,X-为低电平,接Y+的管脚配置成AD输入模式,检测Y+的电压,此电压与驱动电压的比例即X坐标和整个屏的宽度比率。
   Y=Ux/Vdrive*触屏高度
   X=Uy/Vdrive*触屏宽度
  
  三、软件设计
  
  (一)线电阻触摸屏检测软件流程
  软件流程如图4所示:
  (二)Stm32配置AD程序
  void ADC_Configuration(void)
  {
  ADC_InitTypeDef ADC_InitStructure;
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = ENABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 2;
  ADC_Init(ADC1, &ADC_InitStructure);
  /* ADC1 regular channel14 configuration */
  ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
  ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
  /* Enable ADC1 DMA */
  ADC_DMACmd(ADC1, ENABLE);
  /* Enable ADC1 external trigger */
  ADC_ExternalTrigConvCmd(ADC1, ENABLE);
  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);
  /* Enable ADC1 reset calibaration register */
  ADC_ResetCalibration(ADC1);
  /* Check the end of ADC1 reset calibration register */
  while(ADC_GetResetCalibrationStatus(ADC1));
  /* Start ADC1 calibaration */
  ADC_StartCalibration(ADC1);
  /* Check the end of ADC1 calibration */
  while(ADC_GetCalibrationStatus(ADC1));
  }
  
  四、结语
  
  笔者设计采用基于 STM32的控制核心来实现和4线电阻触摸屏接口,已经成功的进行了应用,经检测可靠,而且实现比较容易。为系统中采用STM32微控制器和4线电阻触摸屏的接口应用提供了参考方案。
  
  参考文献
  [1]RM0008 Reference manual,http://www.st.com,2008-02.
  [2]STM3210E-EVAL firmware,http://www.st.com,2008-03.
  [3]4-wire and 8-wire resistive touch screen controller using msp430,http://www.ti.com.
  
  作者简介:王骅(1978-),男,江苏无锡人,无锡机电高等职业技术学校助教,研究方向:自动控制;王晓忠(1981-),男,江苏无锡人,无锡机电高等职业技术学校助教,硕士,研究方向:控制工程。
其他文献
坐在对面的李亚红,有一双非常漂亮、熠熠生辉的眼睛.比电视上瘦很多.娇小玲珑,全然让人觉察不出她有175cm的身高,反而让比她矮小的我油然生出保护她的欲望。亚红很善谈,很快就进入
煤层气的压裂增产过程中,压裂缝通常会延伸至顶板,顶板水的越层窜流对煤层气的生产动态存在较大影响。针对煤层气生产过程中的越层窜流问题,建立了煤层与顶板水体的两种连通
本文提出了面向未来的公共图书馆包容性发展命题,分析了包容性增长与包容性发展的概念,论述了后全面小康时期公共图书馆实施包容性发展战略需要秉持的优质均衡、全程智能和协
岁月沧桑.一晃30多年过去了,但初涉社会的那段知青生活,不但没有随时光流逝而模糊,反而愈加清晰,历历如在眼前.
期刊
含腐植酸水溶肥料在小白菜上喷施后,增产效果显著,增加小白菜产量93.98 kg·667 m^-2,增产率为7.8%,增值187.96元·667 m^-2。
品味过去的日子,酸涩里总能咂摸出一种让人哭笑不得的味道。
期刊
为进一步做大做强蔗糖产业,广东省农垦总局在湛江垦区召开了广东农垦湛江糖业发展现场办公会,总局党组书记、局长赖诗仁主持会议并作总结。
基于多光束之间互相干涉的光学原理,推导液晶随入射角改变的透射光强分布和液晶折射率的公式,设计制作了一套能够给出液晶折射率的实验测量系统并配套算法程序。运用Matlab数
1969年1月,我们这些中学生插队落户到了新疆兵团二十八团九连。因为家庭出身不好,我积极要求上进,想赶快成为一名正式农工。老职工却说:“要闯过三关的劳动才行!”
硬目标侵彻弹能够有效毁伤敌方地下工事等多层结构目标,为使弹丸能够在预定的层数起爆,利用侵彻加速度来实现计层。通过有限元仿真软件对弹丸正侵彻和斜侵彻多层间隔靶板进行