20、LCD触摸屏

一、LCD彩色液晶屏工作原理

1、STM32与触摸屏连接方法

PD7-LCD-CS:LCD片选信号。
PE1-LCD-RST:LCD复位信号。
PD5-nWE:写使能,连接LCD的RW脚。
PD4-nOE:输出使能连接LCD的RD脚。
PD11-A16-RS:命令/数据标志
(0,读写命令;1,读写数据)。
D[15:0]:16位双向数据线。
PD13-LIGHT-PWM:LCD背光控制。

2、触摸屏颜色设置

24位转成16位格式公式:

#define RGB565(r, g, b) ((r >> 3) << 11 | (g >> 2) << 5 | (b >> 3))

3、ILI9320常用命令

(R0),这个命令,有两个功能,如果对它写,则最低位为OSC,用于开启或关闭振荡器。而如果对它读操作,则返回的是控制器的型号。

(R32、R33),设置GRAM的行地址和列地址。R32用于设置列地址(X坐标,0~239),R33用于设置行地址(Y坐标,0~319)。当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到该点,然后写入颜色值就可以了。

(R80~R83),行列GRAM地址位置设置。这几个命令用于设定你显示区域的大小,我们整个屏的大小为240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果用先写坐标,后写数据这样的方式来实现,则速度大打折扣。此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据R3的设置自动增加/减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。

(R34),写数据到GRAM命令,当写入了这个命令之后,地址计数器才会自动的增加和减少。该命令是我们要介绍的这一组命令里面唯一的单个操作的命令,只需要写入该值就可以了,其他的都是要先写入命令编号,然后写入操作数。

R3,入口模式命令。我们重点关注的是I/D0、I/D1、AM这3个位,因为这3个位控制了屏幕的显示方向。AM:控制GRAM更新方向。当AM=0的时候,地址以行方向更新。当AM=1的时候,地址以列方向更新。I/D[1:0]:当更新了一个数据之后,根据这两个位的设置来控制地址计数器自动增加/减少1。

R7,显示控制命令。该命令CL位用来控制是8或16位彩色。当CL=1时是8位色,当CL=0时是16位色。D1、D0、BASEE这3个位用来控制屏幕显示状态。当全部设置成1时显示开启,全部设置成0时显示关闭。我们一般通过该命令来设置液晶屏在空闲时显示状态,以降低功耗。

4、触摸屏操作步骤

TFTLCD显示需要的相关设置步骤如下:

1)设置STM32与TFTLCD模块相连接的IO。       这一步,先将我们与TFTLCD模块相连的IO口进行初始化,以便驱动LCD。

2)初始化TFTLCD模块。       通过向TFTLCD写入一系列的设置,来启动TFTLCD的显示。为后      续显示字符和数字做准备。

3)通过函数将字符和数字显示到TFTLCD模块上。       这里就是通过我们设计的程序,将要显示的字符送到TFTLCD模 块就可以了。

二、STM32 FSMC工作原理  ( FSMC全称“静态存储器控制器”)

1、FSMC功能介绍

● 将AHB传输信号转换到适当的外部设备协议
● 满足访问外部设备的时序要求
    所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。FSMC在任一时刻只访问一个外部设备。
● 具有静态存储器接口的器件包括:
─静态随机存储器(SRAM)
─只读存储器(ROM)
─NOR闪存
─PSRAM(4个存储器块)
● 两个NAND闪存块。
● 16位的PC卡兼容设备

● 8或16位数据总线
● 每一个存储器块都有独立的片选控制
● 每一个存储器块都可以独立配置
● 时序可编程以支持各种不同的器件:
─等待周期可编程(多达15个周期)
─总线恢复周期可编程(多达15个周期)
─输出使能和写使能延迟可编程(多达15周期)
─独立的读写时序和协议,可支持宽范围的存储器和时序
● PSRAM和SRAM器件使用的写使能和字节选择输出
● 将32位的AHB访问请求,转换到连续的16位或8位,对外部16位或8位器件的访问

2、

3、FSMC框图

FSMC 包含以下四个模块:

(1)AHB 接口(包含 FSMC 配置寄存器)

(2)NOR 闪存和 PSRAM 控制器

(3)NAND 闪存和 PC 卡控制器

(4)外部设备接口

要注意的是,FSMC 可以请求 AHB 进行数据宽度的操作。如果 AHB 操作的数据宽度大于外部设备(NOR 或 NAND 或 LCD)的宽度,此时 FSMC 将 AHB操作分割成几个连续的较小的数据宽度,以适应外部设备的数据宽度。

4、FSMC 对外部设备的地址映像

从FSMC的角度看,可以把外部存储器划分为固定大小为256M字节的四个存储块,见下图。
● 存储块1用于访问最多4个NOR闪存或PSRAM存储设备。4个NOR/PSRAM区有4个专用的片选。
● 存储块2和3用于访问NAND闪存设备,每个存储块连接一个NAND闪存。
● 存储块4用于访问PC卡设备每一个存储块上的存储器类型是由用户在配置寄存器中定义的。

5、NOR和PSRAM地址映像

从上图可以看出,FSMC 对外部设备的地址映像从 0x6000 0000 开始,到0x9FFF FFFF 结束,共分 4 个地址块,每个地址块 256M 字节。可以看出,每个
地址块又分为 4 个分地址块,大小 64M。对 NOR 的地址映像来说,我们可以通过选择 HADDR[27:26]来确定当前使用的是哪个 64M 的分地址块,如下页表格。
而这四个分存储块的片选,则使用 NE[4:1]来选择。数据线/地址线/控制线是共享的。

NE1-NE4,对应的引脚为:PD7—NE1,PG9—NE2,PG10-NE3,PG12—NE4

6、HADDR与FSMC_A对应关系

HADDR是需要转换到外部存储器的内部AHB地址线。
HADDR[25:0]包含外部存储器地址。HADDR是字节地址,而存储器访问不都是按字节访问,因此接到存储器的地址线依存储器的数据宽度有所不同,如下表:

对于16位宽度的外部存储器,FSMC将在内部使用HADDR[25:1]产生外部存储器的地址FSMC_A[24:0]。不论外部存储器的宽度是多少(16位或8位),

FSMC_A[0]始终应该连到外部存储器的地址线A[0]。

7、STM32与触摸屏连接方法

PD7-LCD-CS:LCD片选信号。
PE1-LCD-RST:LCD复位信号。
PD5-nWE:写使能,连接LCD的RW脚。
PD4-nOE:输出使能连接LCD的RD脚。
PD11-A16-RS:命令/数据标志
(0,读写命令;1,读写数据)。
D[15:0]:16位双向数据线。
PD13-LIGHT-PWM:LCD背光控制。

8、把TFTLCD当成SRAM设备用

这里我们介绍下为什么可以把TFTLCD当成SRAM设备用:首先我们了解下外部SRAM的连接。     外部SRAM的控制一般有:地址线(如A0-A18)、数据线(如D0-D15)、写信号(WE)、读信号(OE)、片选信号(CS),如果SRAM支持字节控制,那么还有UB/LB信号。     TFTLCD信号包括:RS、D0-D15、WR、RD、CS、RST和BL等,其中真正在操作LCD的时候需要用到的就只有:RS、D0-D15、WR、RD和CS。其操作时序和SRAM的控制完全类似,唯一不同就是TFTLCD有RS信号,但是没有地址信号。

TFTLCD通过RS信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把RS接在A0上面,那么当FSMC控制器写地址0的时候,会使得A0变为0,对TFTLCD来说,就是写命令。而FSMC写地址1的时候,A0将会变为1,对TFTLCD来说,就是写数据了。这样,就把数据和命令分开了,他们其实就是对应SRAM操作的两个连续地址。当然RS也可以连接在其他地址线上,我们众想科技的LY-STM32开发板是把RS连接在A16上面的。

三、点亮LCD彩色液晶屏

1、点亮LCD彩色液晶屏的步骤

(1).打开FSMC外设时钟

(2).配置FSMC的GPIO管脚状态

(3).FSMC初始化配置

(4).调用LCD彩色液晶屏初始化函数

(5).编写LCD彩色液晶屏读写函数(命令/数据)

(6).发送数据到LCD彩色液晶屏的缓存里并显示

2、ILI9320常用命令

3、代码例程:

4、工程下载:

四、LCD彩色液晶屏显示汉字、英文、数字

1、代码例程:

2、工程下载:

五、触摸屏工作原理

1. 触摸屏结构

2、功能说明

XPT2046 是一款 4 线制电阻式触摸屏控制器,内含 12 位分辨率 125KHz 转换速率逐步逼近型 A/D 转换器。XPT2046 支持从 1.5V 到 5.25V 的低电压 I/O 接口。XPT2046 能通过执行两次 A/D 转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。内部自带 2.5V 参考电压,可以作为辅助输入、温度测量和电池监测之用,电池监测的电压范围可以从 0V 到 6V。XPT2046 片内集成有一个温度传感器。 在 2.7V 的典型工作状态下,关闭参考电压,功耗可小于 0.75mW。XPT2046采用微小的封装形式:TSSOP-16,QFN-16和VFBGA-48。工作温度范围为-40℃~+85℃。与ADS7846、TSC2046、AK4182A 完全兼容

3、主要特性

工作电压范围为1.5V~5.25V

支持1.5V~5.25V 的数字I/O口

内建2.5V参考电压源

电源电压测量(0V~6V)

内建结温测量功能

触摸压力测量

采用3线制SPI通信接口

具有自动省电功能

4. 芯片封装与管脚定义

5. 数字接口

XPT2046数据接口是串行接口,其典型工作时序如图12所示,图中展示的信号来自带有基本串行接口的单片机或数据信号处理器。处理器和转换器之间的通信需要8个时钟周期,可采用SPI同步串行接口。一次完整的转换需要24个串行同步时钟(DCLK)来完成。 前8个时钟用来通过DIN引脚输入控制字节。当转换器获取有关下一次转换的足够信息后,将进入采样模式。3个多时钟周期后,控制字节设置完成,转换器进入转换状态。接着的12个时钟周期将完成真正的模数转换,第13个时钟将输出转换结果的最后一位。剩下的3个多时钟周期将用来完成被转换器忽略的最后字节(DOUT置低)。

控制字节由DIN输入的控制字如表5所示,它用来启动转换,寻址,设置ADC分辨率,配置和对XPT2046进行掉电控制。表6给出控制字的各控制位的详细说明。

起始位——第一位,即S位。控制字的首位必须是1,即S=1。在XPT2046的DIN引脚检测到起始位前,所有的输入将被忽略。

地址——接下来的3位(A2、A1和A0)选择多路选择器的现行通道,触摸屏驱动和参考源输入。

MODE——模式选择位,用于设置ADC的分辨率。MODE=0,下一次的转换将是12位模式;MODE=1,下一次的转换将是8位模式。

SER/DFR——位控制参考源模式,选择单端模式(SER/DFR=1),或者差分模式(SER/DFR=0)。在X坐标、Y坐标和触摸压力测量中,为达到最佳性能,首选差分工作模式。参考电压来自开关驱动器的电压。在单端模式下,转换器的参考电压固定为VREF相对于GND引脚的电压。

PD0和PD1——ADC的内部参考电压可以单独关闭或者打开,但是,在转换前,需要额外的时间让内部参考电压稳定到最终稳定值;如果内部参考源处于掉电状态,还要确保有足够的唤醒时间。ADC要求是即时使用,无唤醒时间的。另外还得注意,当BUSY是高电平的时候,内部参考源禁止进入掉电模式。XPT2046的通道改变后,如果要关闭参考源,则要重新对XPT2046写入命令。

6、触摸屏结构

7、 数字接口

XPT2046数据接口是串行接口,其典型工作时序如图12所示,图中展示的信号来自带有基本串行接口的单片机或数据信号处理器。处理器和转换器之间的通信需要8个时钟周期,可采用SPI同步串行接口。一次完整的转换需要24个串行同步时钟(DCLK)来完成。

前8个时钟用来通过DIN引脚输入控制字节。当转换器获取有关下一次转换的足够信息后,将进入采样模式。3个多时钟周期后,控制字节设置完成,转换器进入转换状态。接着的12个时钟周期将完成真正的模数转换,第13个时钟将输出转换结果的最后一位。剩下的3个多时钟周期将用来完成被转换器忽略的最后字节(DOUT置低)。

控制字节由DIN输入的控制字如表5所示,它用来启动转换,寻址,设置ADC分辨率,配置和对XPT2046进行掉电控制。表6给出控制字的各控制位的详细说明。

起始位——第一位,即S位。控制字的首位必须是1,即S=1。在XPT2046的DIN引脚检测到起始位前,所有的输入将被忽略。

地址——接下来的3位(A2、A1和A0)选择多路选择器的现行通道,触摸屏驱动和参考源输入。

MODE——模式选择位,用于设置ADC的分辨率。MODE=0,下一次的转换将是12位模式;MODE=1,下一次的转换将是8位模式。

SER/DFR——位控制参考源模式,选择单端模式(SER/DFR=1),或者差分模式(SER/DFR=0)。在X坐标、Y坐标和触摸压力测量中,为达到最佳性能,首选差分工作模式。参考电压来自开关驱动器的电压。在单端模式下,转换器的参考电压固定为VREF相对于GND引脚的电压。

PD0和PD1——ADC的内部参考电压可以单独关闭或者打开,但是,在转换前,需要额外的时间让内部参考电压稳定到最终稳定值;如果内部参考源处于掉电状态,还要确保有足够的唤醒时间。ADC要求是即时使用,无唤醒时间的。另外还得注意,当BUSY是高电平的时候,内部参考源禁止进入掉电模式。XPT2046的通道改变后,如果要关闭参考源,则要重新对XPT2046写入命令。

8、代码例程:

9、工程下载:

时间: 2025-01-02 17:03:22

20、LCD触摸屏的相关文章

mini2440裸机试炼之—计算器(LCD显示,触摸屏中断)

基于T35 TFT LCD屏实现功能: 1. 在屏幕上画一个计算器界面,包括0-9,+,-,*,/: 2. 实现触摸选择界面上的数字和运算符, 3. 并计算出结果显示在显示框内. 注意,只实现整数功能,没涉及小数,只实现一次运算,不保存上次运算结果. 实现界面: 实现过程: 开启LCD电源,初始化LCD>>>LCD填充界面图片>>>开启触摸屏中断>>>获取键值>>>区分数字和功能来调用数字图片显示.   数字图片: 空白图: 除数为零

mini2440裸试验—计算器(LCD显示,触摸屏突破)

关于Pait_Bmp(x0, y0, x, y, BMPaddr);函数 像素图在屏幕左上角为(0,0),Pait_Bmp中的x0.y0分别像素点初始位置,x,y为BMP图片的X,Y的大小.BMPaddr为BMP图片转换的数组地址 基于T35 TFT LCD屏实现功能: 1. 在屏幕上画一个计算器界面,包含0-9,+.-,*./: 2. 实现触摸选择界面上的数字和运算符. 3. 并计算出结果显示在显示框内. 注意.仅仅实现整数功能,没涉及小数.仅仅实现一次运算,不保存上次运算结果. 实现界面:

2、UCGUI触摸屏驱动移植

1.例程代码: 1 /************************************************************************************************************************************* 2 * 3 * 文件名称:main.c 4 * 文件功能:主函数文件 5 * 6 ****************************************************************

七、2440裸机开发 触摸屏操作

七.lcd触摸屏控制 触摸屏就是当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板.2440连接的是电阻式触摸屏,利用压力感应进行控制,电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理.光滑防擦的塑料层.它的内表面也涂有一层涂层.在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把

基于mini2440简易计算器

基于mini2440简易计算器使用的是数组实现,并非逆波兰式,因此功能不够强大,仅供驱动学习,以及C语言基础编程学习之用.有时间读者可以用逆波兰式来实现强大功能计算器,原理也很简单,建议读<c程序设计第二版>里面有算法的代码.读者自行研究.此程序基于电子相册的改进,触摸屏,LCD,字符现实,数字输入等等 mini2440  索尼X35   LCD液晶屏 主函数部分: #include "def.h" #include "option.h" #includ

【转】朱兆祺带你一步一步学习嵌入式(连载)

原文网址:http://bbs.elecfans.com/jishu_357014_2_1.html#comment_top  从最初涉及嵌入式Linux开始到现在,深深的知道嵌入式的每一步学习都是举步维艰.从去年11月份开始,我就着手整理各种学习资料,希望推动嵌入式学习的前进贡献自己微不足道的一份力量.从去年到现在,将C语言的学习经验整理成<攻破C语言笔试与机试陷阱及难点>(现在仍在更新),这份资料已经在电子发烧友论坛的单片机论坛连载(http://bbs.elecfans.com/jish

1、移植UCGUI操作系统到LY-STM32开发板上

1. 2.程序例程: 1 /************************************************************************************************************************************* 2 * 3 * 文件名称:main.c 4 * 文件功能:主函数文件 5 * 6 *************************************************************

mini2440裸机音乐播放器(很久以前的笔记)

[这是好久以前写的,有点乱,没时间整理,当做记录用的.] 图片粘贴失效,没上传图,想要的直接下载文档吧. 项目目的:通过IIS,触摸屏,LCD模块实现音乐播放器功能(按钮上一首.下一首.播放.暂停的音频控制功能,并实现播放歌曲时显示相应的歌曲图片,不播放时显示hello music图片) 项目设备:windows7(32位),mini2440,uboot(nandflash),ADS1.2开发环境,jlink v8,耳机: 功能模块LCD.触摸屏.IIS 分别介绍: Main函数中主频设置: U

mini2440裸机试炼之IIS——音乐播放器

IIS 信号频率设置 IIS(Inter-IC Sound)由飞利浦公司开发,是一种常用的音频设备接口,主要用于CD.MD.MP3等设备. s3c2440一共有5个引脚用于IIS:IISDO.IISDI.IISSCLK.IISLRCK和CDCLK.前两个引脚用于数字音频信号的输出和输入,另外三个引脚都与音频信号的频率有关,可见要用好IIS,就要把信号频率设置正确. IISSCLK为串行时钟,每一个时钟信号传送一位音频信号.因此IISSCLK的频率=声道数×采样频率×采样位数,如采样频率fs为44