4-4.stm32之LCD XPT2046的使用

xpt2046介绍

xpt2046触控显示模组包含xpt2046芯片触控芯片+ili9341lcd ic驱动芯片+串口转并口控制器芯片。

xpt2046本来意思是一个带有ad驱动芯片,主要检测我们在触摸屏是的点位坐标信息转化的模拟量,并转化为数字量。最终将结果信息传输给控制器。但是光有触摸板不行,还得有屏幕,这里面就加入了ili9341的lcd作为显示器。同时为了方便数据交互,将ili9341的并口显示转换为以spi串口形式的传输方式。

4-4.stm32之LCD XPT2046的使用_第1张图片

引脚

4-4.stm32之LCD XPT2046的使用_第2张图片

xpt2046触摸层介绍

xpt2046是一款四线电阻触摸屏,主要有两层镀有ITO镀层薄膜组成,其中一层在屏幕的左右边缘各垂直总线,另一层在屏幕的底部和顶部且各水平总线,如果在一层薄膜的两条总线上施加电压,在ITO镀层就形成均匀的电场,当使用者初级触摸屏是,触击点处两层薄膜就会接触。

水平和垂直的电场是分时扫描的,也就是水平方向通上5V和GND的电压,垂直方向接入AD(模拟转数字单元),监测水平处的触发线。同理,下一时刻进行垂直方向的5V和GND通上5V和GND的电压,水平方向接入AD,监测垂直方向的触发线。最后将x,y的地址确定。

4-4.stm32之LCD XPT2046的使用_第3张图片

当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在 X 和 Y 两个方向上的电压发生变化,产生信号,然后控制器读取信号,并计算出手指触摸的位置, 这就是电阻式触摸屏的原理。

4-4.stm32之LCD XPT2046的使用_第4张图片

xpt2046 LCD介绍

xpt2046使用的lcd是ILI9341的液晶显示,3.5寸分辨率是480*320,支持125MHz高速SPI信号传输,显示清晰稳定,提供驱动(支持Raspbian\Ubuntu\Kali和Retropie系统),所以多数树莓派3b、4b都多数选用xpt2046作为显示器,大小合适,且提供开源的驱动。

git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
sudo ./LCD35C-show

详细了解和树莓派的使用http://www.waveshare.net/wiki/3.5inch_RPi_LCD_(C)

回到主题,我们要使用stm32和xpt2046结合使用,需要的思路是:

  1. mcu使用SPI与xpt2046通信 ,预先设置mcu的spi接口,最好使用可以移植现成的spi库(减少开发难度)。
  2. 了解xpt2046相关寄存器的设置,最重要的是与哪个xpt的寄存器通信,获取结果值。
  3. 根据结果值处理相应的业务。(想确保xpt触控屏和stm32友好交互,我们需要stm32跑带有GUI的系统,后期再讲)。

STM32F407VE与xpt2046联调

xpt2046接线引脚说明

4-4.stm32之LCD XPT2046的使用_第5张图片

你可能感兴趣的:(4-4.stm32之LCD XPT2046的使用)