STM32—电容触摸屏的使用

前言

STM32触摸屏是一种基于STM32微控制器的触摸式人机交互界面,它允许用户通过直接触摸屏幕上的图符或文字来向计算机输入指令或信息。在嵌入式系统开发中,触摸屏的应用日益广泛,它们不仅提供了直观的人机交互方式,还整合了输入和输出设备,减少了额外硬件的空间需求。

电容触摸屏检测原理与特点

原理:触摸屏分为电阻式触摸屏和电容式触摸屏,与电阻式触摸屏不同,电容式触摸屏不需要通过压力使触点变形,再通过触点处电压值来检测坐标,它的基本原理和前面定时器章节中介绍的电容按键类似,都是利用充电时间检测电容大小,从而通过检测出电容值的变化来获知触摸信号。

   X 轴电极与 Y 轴电极在交叉处形成电容,即这两组电极构成了电容的两极,这样的结构覆盖了整个电容屏,每个电容单元在触摸屏中都有其特定的物理位置,即电容的位置就是它在触摸屏的XY 坐标。检测触摸的坐标时,第 1 条 X 轴的电极发出激励信号,而所有 Y 轴的电极同时接收信号,通过检测充电时间可检测出各个 Y 轴与第 1 条 X 轴相交的各个互电容的大小,各个 X 轴依次发出激励信号,重复上述步骤,即可得到整个触摸屏二维平面的所有电容大小。当手指接近时,会导致局部电容改变,根据得到的触摸屏电容量变化的二维数据表,可以得知每个触摸点的坐标,因此电容触摸屏支持多点触控。

特点:

  1. 多点触控:电容触摸屏的核心特性之一是支持多点触控,允许用户通过多个手指同时与屏幕交互,实现更复杂的指令输入,如图片缩放、旋转等。
  2. 操作新奇:与传统的电阻触摸屏相比,电容触摸屏提供了更加直观和有趣的用户体验。由于其能够检测到人体微弱的电流变化,电容屏的反应速度非常快,响应时间通常小于3毫秒。
  3. 透光性强:电容触摸屏通常由多层结构组成,包括保护玻璃层、导电层和感应层。其中,导电层通常使用ITO(氧化铟锡)材料,具有良好的透明度和导电性,使得屏幕透光率高达99%,保证了清晰明亮的显示效果。
  4. 反应灵敏:电容触摸屏能精确捕捉触摸位置,甚至能够支持十点触控,这使得它在专业的图像处理和设计软件中表现出色。
  5. 耐用性高:电容触摸屏的表面采用硬化工艺处理,能有效抵抗刮擦和磨损,保证长期使用的稳定性和耐用性。
  6. 环境适应能力强:电容触摸屏能够在不同温度和湿度环境下稳定工作,但极端条件可能会影响其性能。

一、初始化触摸屏

在main函数中调用触摸屏初始化函数

GTP_Init_Panel();

二、获取触摸屏触摸状态

触摸屏被按下是随机的,当被按下时会产生一个中断信号,根据这个中断信号再去读取触摸屏,就能知道是哪个地方被按下了。这里不使用中断信号,使用轮训的方式,每10ms读取一次触摸状态。我们将触摸屏处理函数放在滴答定时器的中断函数中。

在“stm32f4xx_it.c”文件中的SysTick_Handler()函数中调用触摸屏处理函数,每10ms询问触摸屏是否有触摸操作

三、获取触摸操作及坐标

在main.c文件中重新定义以下两个函数,这两个函数在触摸驱动中进行了弱声明

//触摸屏被按下时该函数被调用,x,y是按下时的坐标值
void GTP_Press_Event(int32_t x,int32_t y)
{
  uint8_t buf[100] = {0};
  sprintf((char*)buf,"Press point:%d  %d    ",x,y);  //构造字符串,显示按下时的坐标
  LCD_DisplayStringLine(LINE(0),(uint8_t* )buf);
}
//触摸屏松开时该函数被调用,x,y是松开时的坐标值
void GTP_Release_Event(int32_t x,int32_t y) 
{
  uint8_t buf[100] = {0};
  sprintf((char*)buf,"Release point:%d  %d    ",x,y);//构造字符串,显示松开时的坐标
  LCD_DisplayStringLine(LINE(0),(uint8_t* )buf);
}

四、调试

五、总结

电容式触摸屏主要利用人体电流感应进行工作,具有多点触控、高透光率、反应灵敏和耐用性强等特点。电容式触摸屏,作为现代智能设备中不可或缺的人机交互界面,通过其独特的工作原理和高效的性能特点,在各个领域得到了广泛的应用。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值