3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
3.2inch 320x240 Touch LCD (C)
用户手册
驱动芯片
类型
接口
背光
色阶指数
分辨率
LCD 控制芯片 ILI9325,触摸面板控制芯片 XPT2046
TFT
LCD:16bit 并行,触摸面板:SPI
LED 背光
65536 色
320x240 (Pixel)
简介
目录
3.2inch 320x240 Touch LCD (C) 用户手册 ................................................................................. 1
简介 ................................................................................................................................. 1
1. 硬件资源 .................................................................................................................. 2
ILI9325 ........................................................................................................... 2
XPT2046 ......................................................................................................... 4
2. 硬件说明 .................................................................................................................. 5
3. 示例程序 .................................................................................................................. 6
4. 附件:四线触摸屏的原理与校准 ............................................. 错误!未定义书签。
1.1
1.2
版本 V2.2,2015 年 5 月 19 日
1
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
1. 硬件资源
1.1 ILI9325
ILI9325 是一个 240x320(RGB)分辨率、262144 色的 TFT 液晶显示屏的驱动
芯片;172820 (240 x 320x 18/8) 字节的 RAM。每个像素点深度可以达到18 位。
ILI9325 有以下几种数据接口模式:
1)
2) VSYNC 接口(system interface + VSYNC, internal clock, DB[17:0])
3)
4) RGB 6-/16-/18-bit 接口(DOTCLK, VSYNC, HSYNC, ENABLE, DB[17:0]).
i80-system MPU 接口(8-/9-/16-/18-bit bus width)
serial data transfer 接口(SPI)
此屏的 ILI9325 的 18 位 RGB 赋值与 LCD GRAM 的对应关系如图所示:
从图中可以看出,ILI9325 在 16 位模式下面,GRAM Data 有用的是:D17~D10 和
D8~D1, D9 和 D0 没有用到,实际上在我们 LCD 模块里面, ILI9341 的 D9 和 D0
没有引出,ILI9325 的 D17~D10 和 D8~D1 对应 MCU 的 D15~D0。MCU 的 16 位
数据,最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色;数值越大,表
示该颜色越深。
重要寄存器介绍
寄存器详细介绍请参阅 ILI9325 的 datasheet。这里只介绍一些重要的寄存器设置:
输入设置(R03h):
AM:控制 GRAM 的更新方向
当 AM=0 地址在水平写入方向得以更新
当 AM=1 地址在垂直写入方向得以更新
I/D[1:0]: 当更新一个像素数据时, I/D[1:0]位控制地址计数器(AC)自动增加或
者减少 1。详细请见下图:
版本 V2.2,2015 年 5 月 19 日
2
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
ORG :当窗口地址区域产生后,原点地址的移动根据 ID 的设定。当使用高速写
RAM 模式写数据到窗口地址区域这个功能被使能。
ORG=0 :原点地址不会移动,在这种情况下,在窗口地址区域根据 GRAM 的
地址映射指定一个地址开始写操作。
ORG=1 :原始地址为“00000h” 根据 ID[1 :0]的 设定来移动。
BGR : 根据被写入的数据交换 R 和 B 的顺序
BGR=0 :根据 RGB 的顺序写入像素数据
BGR=1 :交换 RGB 数据为 BGR 写到 GRAM
GRAM 水平垂直变址设置(R20h, R21h)
水平位置寄存器变址 0x20 垂直变址寄存器变址 0x21 GRAM Horizontal/Vertical
Address Set (R20h, R21h)
AD[16:0]:用于设置变址计数器(AC)的初始化数值。当数据写入内部的 GARM 中
时,变址计数器(AC)会根据 AM 和 I/D 位的设置来自动的更新其数值。当从内部
GRAM 中读数据时变址计数器不会自动更新。
版本 V2.2,2015 年 5 月 19 日
3
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
写数据到 GRAM (R22h)
该寄存器是 GRAM 的访问端口,当通过这个寄存器更新显示数据的时候,地址计
数器会自动增加或者减少。
GRAM 地址映射和读/写
ILI9325 有一个容量为 172800 bytes 的内部图片 RAM (GRAM),用来存储显示数据。
一像素由十八位数据构成, GRAM 可以通过 i80 系统接口,SPI 或者是 RGB 接口
来访问,以下是 GRAM 在 i80 系统接口下读写的时序“
1.2 XPT2046
XPT2046 是一款 4 线制电阻式触摸屏控制器,内含 12 位分辨率 125KHz 转
换速率逐步逼近型 A/D 转换器。
XPT2046 支持从 1.5V 到 5.25V 的低电压 I/O 接口。
XPT2046 能通过执行两次 A/D 转换查出被按的屏幕位置,除此之外,还可以
测量加在触摸屏上的压力。内部自带 2.5V 参考电压,可以作为辅助输入、温
度测量和电池监测之用,电池监测的电压范围可以从 0V 到 5V。
XPT2046 片内集成有一个温度传感器。在 2.7V 的典型工作状态下,关闭参考
电压,功耗可小于 0.75mW。XPT2046 采用微小的封装形式:TSSOP-16,QFN-16
和 VFBGA-48。 工作温度范围为-40℃~+85℃。与 ADS7846、TSC2046、
AK4182A 完全兼容。
版本 V2.2,2015 年 5 月 19 日
4
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
2. 硬件说明
引脚号 标识 描述
功能
1 5V
5V 电源
当 5V 供电时(1,2 脚接 5V 电源),3.3V 端(33,
34 脚输出 3.3V 电压)
2 GND
接地
GND
3 D0
4 D1
5 D2
6 D3
7 D4
8 D5
9 D6
10 D7
11 D8
12 D9
13 D10
14 D11
15 D12
16 D13
17 D14
18 D15
数据线
D0-D15
19 CS
LCD 片选信号 低电平选择 LCD
20 RS
21 WR
22 RD
指令/数据 寄
存器选择
RS = 0:指令寄存器
RS = 1:数据寄存器
写动作
读动作
WR = 0,RD = 1
WR = 1,RD = 0
23 RESET 芯片重启
低电平重启芯片
24 NC
25 BLVCC
5V 或 3.3V
26 BLGND 接地
背光灯 VCC
背光灯 GND
27 BLCNT
背光灯亮度调
节
可以使用 PWM 来控制背光灯亮度
28 TP_IRQ 触摸面板中断 检测到触摸面板有按下则为低电平
29 TP_CS
30 TP_SCK
31 TP_SI
触摸面板片选
信号
触摸面板 SPI 时
钟信号
触摸面板 SPI 数
据输入
低电平选择触摸面板
连接到 SPI 的 SCK
连接到 SPI 的 MOSI
32 TP_SO 触摸面板 SPI 数 连接到 SPI 的 MISO
版本 V2.2,2015 年 5 月 19 日
5
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
据输出
33 3.3V
+3.3 电源
当 3.3V 供电时(33,34 脚输入 3.3V) 1,2 脚悬空
34 GND
接地
3. 示例程序
本手册使用主控芯片 STM32F103RCT6 的开发板说明本款 LCD 的基本使用方法。用
户也可以采用其他类似的开发板进行开发。
3.2inch 320x240 Touch LCD (C)和 STM32F103RCT6 连接接口图:
版本 V2.2,2015 年 5 月 19 日
6
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
程序流程:
初始化 LCD 控制器的 IO
复位 LCD,初始化 LCD 控制器的寄存器
初始化触摸面板 SPI
进 行 触 摸 板 校
判断是否有触摸
否
是
读取触摸板的坐标
转换成显示坐标,显示到 LCD 上
版本 V2.2,2015 年 5 月 19 日
7
3.2inch 320x240 Touch LCD (C)用户手册
微雪电子
源代码解析:
0
90
180
270
/*下面宏定义的是图像的旋转角度*/
//#define DISP_ORIENTATION
//#define DISP_ORIENTATION
//#define DISP_ORIENTATION
#define DISP_ORIENTATION
#define Set_Cs GPIO_SetBits(GPIOC, GPIO_Pin_6); //CS=1;
#define Clr_Cs GPIO_ResetBits(GPIOC, GPIO_Pin_6); //CS=0;
#define Set_Rs GPIO_SetBits(GPIOC, GPIO_Pin_7); //RS=1;
#define Clr_Rs GPIO_ResetBits(GPIOC, GPIO_Pin_7); //RS=0;
#define Set_nWr GPIO_SetBits(GPIOC, GPIO_Pin_1); //WR=1;
#define Clr_nWr GPIO_ResetBits(GPIOC, GPIO_Pin_1); //WR=0;
#define Set_nRd GPIO_SetBits(GPIOC, GPIO_Pin_2); //RD=1;
#define Clr_nRd GPIO_ResetBits(GPIOC, GPIO_Pin_2); // RD=0;
/* 写命令函数 */
__inline void LCD_WriteIndex(uint16_t index)
{
Clr_Rs; //RS=0
Set_nRd; //RD=0
LCD_Delay(0); //延时
GPIOB->ODR = index; /*写命令 */
LCD_Delay(0); //延时
Clr_nWr; //WR=0
Set_nWr; //WR=1
8
}
/* 写数据函数 */
__inline void LCD_WriteData(uint16_t data)
{
Set_Rs; //RS=1
LCD_Delay(0); //延时
GPIOB->ODR = data; /*写数据*/
LCD_Delay(0); //延时
Clr_nWr; //WR=0
Set_nWr; //WR=1
}
/* 读数据函数 */
__inline uint16_t LCD_ReadData(void)
{
uint16_t value;
Set_Rs;
版本 V2.2,2015 年 5 月 19 日