Skip to main content

4.3寸MCU屏触摸

前言

本节讲解麦哲伦 + 4.3寸MCU屏的电容触摸屏使用方法。

实验平台

麦哲伦MicroPython开发套件、4.3寸MCU显示屏(电容触摸)。

touch

实验目的

获取电容触摸屏的坐标并画点标记。

实验讲解

本节实现当手指按下时候,通过简单的编程即可返回一个坐标,4.3寸MCU屏上的电容触摸驱动芯片是GT1151,我们来看看其micropython构造函数和使用方法:

GT1151对象

构造函数

touch.GT1151(portrait=1)

构建触摸屏对象。GT1151表示驱动芯片型号。

  • portrait :屏幕显示方向:
    • 1: 480*800 ,默认
    • 2: 横屏,800*480 ,1基础上顺时针旋转90°
    • 3: 竖屏,480*800 ,1基础上顺时针旋转180°
    • 4: 横屏,800*480 ,1基础上顺时针旋转270°

使用方法

GT1151.tick_inc()

手动刷新触摸,每次读取数据前必须执行该函数。


GT1151.read()

读取触摸屏数据,返回(states,x,y)

  • states: 当前触摸状态:0:按下;1:移动;2:松开。;
  • x: 触摸点横坐标;
  • y: 触摸点纵坐标;

更多用法请阅读官方文档:
https://docs.01studio.cc/library/touch/touch.GT1151.html


学会了触摸对象用法后,我们可以编程实现触摸后屏幕打点表示,然后左上角显示当前触摸的坐标。另外再加入一个按键,按下清空屏幕。编程流程图如下:

参考代码

'''
实验名称:电容触摸屏
版本:v1.0
平台:麦哲伦开发板
作者:01Studio
社区:www.01studio.cc
说明:电容触摸屏采集触摸信息
'''

from touch import GT1151
from tftlcd import LCD43M
from pyb import Switch
import time

#定义颜色
BLACK = (0,0,0)
WHITE = (255,255,255)
RED=(255,0,0)

#LCD初始化
d = LCD43M(portrait=1)
d.fill(WHITE)#填充白色

#电容触摸屏初始化,方向和LCD一致
t = GT1151(portrait=1)

#USR按键初始化
sw = Switch() #定义按键对象名字为sw
sw.callback(lambda:d.fill(WHITE)) #当按键被按下时,LCD清屏白色

while True:

data = t.read() #获取触摸屏坐标
print(data) #REPL打印

#当产生触摸时
if data[0]!=2: #0:按下; 1:移动; 2:松开

#触摸坐标画圆
d.drawCircle(data[1], data[2], 10, BLACK, fillcolor=BLACK)
d.printStr('(X:'+str('%03d'%data[1])+' Y:'+str('%03d'%data[2])+')',10,10,RED,size=3)

time.sleep_ms(10) #触摸响应间隔

实验结果

运行程序,用手指触摸屏幕或者在屏幕上滑动,可以看到描点并在LCD左上角显示当前坐标。

touch

按下USR按键清空屏幕内容:

touch