从零开始一起学stm32(十)---触摸屏

触摸屏:

1.触摸屏和LCD屏区别

触摸屏:输入设备--使用的是模拟SPI协议去接收和发送数据

LCD屏:显示设备--输出设备---使用8080并口协议进行数据传输

2.触摸屏分类:

电阻屏和电容屏

3.四线电阻屏:

X+ 、X- 、Y+、Y-

4.工作原理:

测量X轴坐标时,X+接VCC, X-接GND; Y+接ADC转换通道,Y-高阻态;

5.ADC转换芯片--XPT2046

1.作用:把模拟量转换为数字量;

2.转换精度:12位的2进制;

0~5v模拟电压---转换成0~2^12-1;

3.XPT2046和stm32通信协议:模拟SPI通信;

4.管脚:

CS:   片选信号,低电平有效

CLK: 时钟输入管脚,由主机产生时钟信号,从机不产生;

DIN: 数据输入管脚--上升沿锁存数据;

DOUT:数据输出管脚--下降沿发送数据;

PENIRQ:笔中断引脚---触摸屏被按下,为0,否则为1;

BUSY:忙信号--CS 为高时,为高阻态;

5.协议:SPI

主机:上升沿发送数据,下降沿接收数据;

      

测量X/Y轴坐标:

1.先发送1个字节的控制命令;

2.接收由ADC转换过来的2个字节的坐标---只需要高12位即可!

 

测量X轴坐标:A2 A1 A0---1 0 1              1101 0000 ---0xD0

测量Y轴坐标:A2 A1 A0---0 0 1                      1001 0000 ---0x90

         S--起始位---必须为1

A2A1A0----地址位

MODE------模式位---0--12位转换精度            1--8位转换精度

SER/DFR---差分模式;

PD0 PD1---笔中断使能--转换时芯片会立即上电;

 

6.stm32与XPT2046的I/O配置

     

            用GPOI口模拟SPI协议:高低电平信号!

XPT2046         LCD         STM32

     DOUT           MISO        PF8   --浮空输入

     CS            T_CS        PB2   --推挽输出

     DCLK           CLK         PB1   --推挽输出

     PENIRQ          T_PEN        PF10  --浮空输入

     DIN            MOSI        PF9   --推挽输出

 

7.模拟SPI写数据

1.CS拉低,主机产生CLK(0);MOSI(DIN)为0;

2.MOSI发送控制命令--1个字节--上升沿发送数据---DIN管脚接收;

8.模拟SPI读数据

1.由于上升沿发送数据,所以控制命令发送完成是CLK(1)

所以,要CLK(1)变为CLK(0);此时BUSY为1.

2.延时之后由CLK(0)变为CLK(1);--产生上升沿

3.CLK(1)变为CLK(0);---产生下降沿,BUSY为0---开始接收数据

 

9.三点校准:

 

 

 

作业:

1、做触摸屏按键 -- LED_ON -- 灯亮 LED_OFF -- 灯灭

2、做触摸屏按键 -- LED_ON -- 灯亮 LED_OFF -- 灯灭

                   按键按下,颜色转换

 

3.扩展:写函数,能够在LCD屏上写字!

 

4.做一个12键界面,实现0123456789随意显示 ,#为删除键

猜你喜欢

转载自blog.csdn.net/qq_38639426/article/details/88633197