标签:
一、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、工程下载:
标签:
原文地址:http://www.cnblogs.com/STM32bo/p/4584183.html