版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于STM32F103X的LCD触摸屏驱动的设计姓名:徐进东学号:10030227班级:_10计卓目录1 概述 32 LCD 液晶显示屏 32.1 LCD液晶显示屏原理322 LCD液晶显示屏分类33 触摸屏驱动原理概述 43.1 电阻触摸屏工作原理 43.2 触摸屏控制实现 44 设计目标 45 系统硬件设计 55.1 STM32微处理器FSMC接口 55.2 LCD液晶显示屏介绍75.3 触摸屏控制板 86 系统软件设计 106.1 系统软件结构 106.2 头文件设计 116.2 硬件初始化程序 116.3 3寸LCD模块驱动程序146.4 触摸坐标获取程序 196.5 LCD控制器控制
2、程序227 总结 241概述LCD液晶显示屏与触摸屏在嵌入式系统中的应用越来越普及。他们是非常简单、方便、 自然的人机交互方式,目前广泛应用于便携式仪器、智能家电、掌上设备等领域。触摸屏与LCD液晶显示技术的紧密结合,成了主流配置。LCD液晶显示屏(LCD Module , LCM)是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源以及结构件装配在仪器的组件。触摸屏技术在我国的应用时间不是太长,但它已经成长为人们最为接受的输入方式。利用这种技术人们只需触碰屏幕就可以对主机进行操作,是人机交互更为方便,直截了当。本文档是对LCD液晶显示屏和触摸屏驱动的设计做深入介绍。2 LCD液晶显示
3、屏2.1 LCD液晶显示屏原理液晶(Liquid Crystal):是一种介于固态和液态之间的具有规则性分子排列,及晶体的光学各向异性的有机化合物, 液晶在受热到一定温度的时候会呈现透明状的液体状态,而冷却则会出现结晶颗粒的混浊固体状态,因为物理上具有液体与晶体的特性,故称之为“液晶”。液晶显示器LCD( Liquid Crystal Display):是新型平板显示器件。显示器中的液晶体并不 发光,而是控制外部光的通过量。当外部光线通过液晶分子时,液晶分子的排列扭曲状态不同,使光线通过的多少就不同,实现了亮暗变化,可重现图像。液晶分子扭曲的大小由加在液晶分子两边的电压差的大小决定。因而可以实
4、现电到光的转换。即用电压的高低控制光的通过量,从而把电信号转换成光像。2.2 LCD液晶显示屏分类1. 位段型液晶显示模块位段型液晶显示模块是一种由位段型液晶显示器件与专用的集成电路组装成一体的功 能部件。2. 字符型液晶显示模块字符型液晶显示模块是由字符液晶显示器件与专用的行、列驱动器、控制器、必要的连接件以及结构件装配而成,可以显示数字和西文字符。3. 图形点阵型液晶显示模块图形点阵型显示模块就是可以动态地显示字符和图片的LCDb图形点阵液晶模块的点阵像素连续排列,行和列在拍布中均没有空隔, 不仅可以显示字符, 还可以显示连续完整的图 像。图形点阵型液晶显示模块有三种类型可供选择:行列驱动
5、型,行列驱动控制型及行列控制型。3触摸屏驱动原理概述3.1电阻触摸屏工作原理电阻触摸屏是采用电阻模拟量技术。它是一层玻璃作为基层, 上面涂有一层透明氧化金属(ITO氧化铟)导电层,再盖有一层玻璃或是外表面硬化处理的光滑的塑料层;内表面也 涂有一层ITO导电层。它们之间有许多细小的透明隔离点把两导电层隔开绝缘,每当有笔或是手指按下时,两导电层就相互接触。而形成电路。导电层的两端都涂有一条银胶,称为该 工作面的一对电极。上下两个导电层一个是水平方向,一个是竖直方向,分别用来测量X和Y的坐标位置。在水平面上的电极称为X+电极和X-电极,在竖直平面的电极称为 Y+电极和Y-电极。工作时,两个电极根据测
6、量需要提供参考电压或是作为测量端对接触点的位置进 行测量。当测量接触点 X坐标的时候,导电层上的 X+电极和X电极分别上参考电压和地;Y电极不加电压,那么 X电极间会形成均匀的电压分布,用Y+电极作为测量点,得到的电压值通过A/D转换,就可对应地判断出接触点的X坐标。Y坐标亦是类似,只需改成对Y电极加电压而X电极不加电压即可。图4-1电阻屏原理图3.2触摸屏控制实现对触摸屏的控制有专用的控制芯片。触摸屏的控制芯片主要完成两个任务:一是完成电极电压的切换,二是采集接触点处的电压值并实现A/D转换。触摸屏控制芯片主要由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示器屏幕前面,用于检测用户触
7、摸位置, 接受位置信号后送至触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给MPU,同时它能接收MPU发来的命令并加以执行。4设计目标基于STM32硬件开发平台与3寸液晶屏组成液晶显示与触摸屏人机交互系统。5系统硬件设计本实验的主要硬件由 STM32微处理器的FSMC接口,3寸屏时序转换板以及触摸屏控制 板组成。STM32处理器图5-1硬件系统结构图5.1 STM32微处理器 FSMC接口FSMC模块能够与同步或异步的存储器和16位的PC存储器卡接口,它的主要作用是:将AHB传输信号转换到适当的外部设备协议满足访问外部设备的时序要求,所有的外
8、部存储器共享控制器输出的地址、 数据和 控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。FSMC在任一时刻只访问一个外部设备。FSMC具有下列主要功能:具有静态存储器接口的器件包括:静态随机存储器(SRAM)只读存储器(ROM)NOR闪存PSRAM(4个存储器块)两个NAND闪存块,支持硬件 ECC并可检测多达8K字节数据16位的PC卡支持对同步器件的成组(Burst)访问模式,如NOR闪存和PSRAM8或16位数据总线每一个存储器块都有独立的片选控制每一个存储器块都可以独立配置时序可编程以支持各种不同的器件:等待周期可编程(多达15个周期)总线恢复周期可编程(多达15个周期)输出使
9、能和写使能延迟可编程(多达15周期)独立的读写时序和协议,可支持宽范围的存储器和时序PSRAM和SRAM器件使用的写使能和字节选择输出将32位的AHB访问请求,转换到连续的16位或8位的,对外部16位或8位器件 的访问具有16个字,每个字32位宽的写入FIFO,允许在写入较慢存储器时释放AHB进行其它操作。在开始一次新的FSMC操作前,FIFO要先被清空。通常在系统复位或上电时,应该设置好所有定义外部存储器类型和特性的FSMC寄存器,并保持它们的内容不变;当然,也可以在任何时候改变这些设置。FSMC包含四个主要模块:AHB接口(包含FSMC配置寄存器)NOR闪存和PSRAM控制器NAND闪存和
10、PC卡控制器 外部设备接口FSMC框图如下:FSMC interrupt 卜NVICFrom clock controllerNORmemorycontrollerRegistersFSMC_ NCE3:2 FSMC INT3:2FSMCNTRFSMC_NCE4_1 fsmcInceO FSMC_NIORD FSMC NIOWR FSMC_NIOS16 FSMC_NREGFSMC CDF=SMC_A25:0 FSMC_D15:0 FSMC_NOE FSMC_NWE FSMC NWAITNA忖PC Card memory controllerFSMC_NL(or NADV) FSMC_NBLkO
11、 FSMC CLKNOR PSRAM signalsShared k signalNANDsignalPC Cardsignalsaid 4718图5-2 FSMC接口结构框图当STM32微处理器使用FSMC接口模块来控制LCD液晶显示模块时,其接口信号用于 驱动LCD的对应关系:FSMC接口信号线LCD接口信号功能NExCSX片选NWRWRX写使能NOERDX读使能D15:0D15:0数据信号A25:0RS地址信号STM32微处理器使用FSMC接口模块与LCD英特尔8080 (类似)接口示意图:nlx where xcai bo 1 te 4Ax wfiere x can be 0 to 2
12、5京 15*图5-3 FSMC接口模块与LCD英特尔8080接口示意图5.2 LCD液晶显示屏介绍本实验的LCD液晶显示器采用宇顺公司的3寸彩色液晶屏S95361,分辨率为240*400。3TFT显示屏焊接在奋斗显示转接板上,在屏上贴有触摸屏,通过40芯的接口与V5连接。40芯接口定义如下:XS11FPA5-SPI卜SCK.UXD1.2flHF.I-I CD-EOLJ讥J1-M0S1FTKUciQE1 JQ7Ri-nso,oifiP.Bn-S I AXIPD-IjCD-LS1 yFDIZGRS11121 5I iFEIO-D15141 c IXI匚1 n盯厲126IT IQPD1-D3PD&-
13、D1JFR-PPE15-DE-1 22PF1WFm-D22? ZbPF13-DFD14D 丄1 27 2*F占耳429 30PI7U1H1 J1暨1JPE 114)jj 34JJ JoPD1 -KiFrr-PWM1 J/ 38 in图5-440芯接口40芯里包含了 16位数据线,读写线,命令/数据控制线,片选线,LCD硬件复位线,背 光控制线以及触摸控制线。奋斗板V3和MINI就是通过这个接口来控制显示。奋斗板MINI和V3都是选用了具有 16位FSMC接口 STM32F103VET6乍为MCU, FSMC接口也可以称为 16位并行接口,时序同18080接口。按照显示屏驱动电路 LGDP542
14、0的手册,为了达到色彩 与显示效率的平衡,奋斗板采用了16位64K色接口模式。ialL也Kue121 st Tra n 牟仙BffidB BDB IS 12卩 、r:i图5-5 16位RGB真彩图在这个模式每个像素用 5位红色6位绿色5位蓝色总共16位来表示,根据分辨率,帧图像占用400*240*2=192000字节。16位8080总线接口时序如下:i80System Bus St吕血ce Timing(a) Write to registernCSD B 1 7 :0 X Wribfr indfea8 Writ* rfegiasj&r P血(b) Read from registernCSn
15、RDnWR图5-6总线读写时序图5.3触摸屏控制板TSC2046是一款四线制触摸屏控制器,内涵12位分辨率125kHz转换速率逐步逼近型A/D转换器,它支持1.5V5.25V范围的低电压I/O 口。TSC2046还具有一个片上 2.5V的参考 电压,可以用于辅助输入,电池监测,和温度测量模式。TSC2046芯片主要功能如下:具有四线制触摸屏接口;可单电源工作,工作电压范围2.2V至5.25V;支持1.5V至5.25V的数字I / O 口;内部自带2.5V参考电压源;能直接测量电源电压(0V至6V);片上温度测量;触摸压力测量;具有3线制SPI通信接口;自动省电;封装小,TSSOP-16 QFN
16、-16封装,可在 VFBGA-48封装;其功能框图如下:F-4TX+AUX图5-7 TSC2046功能框图TSC2046最常用封装TSSOP-16引脚排列如图9所示,对应的引脚功能定义如下表所示:Top ViewTSSOP%1016DCLKX+216CEY+311DINX-413BUSYV-STSC204612DOUTGKID611PE NIRQ710IOVDDAUX89甥&图5-8 TSC2046引脚排列图引脚号引脚名功能描述1vcc电源2,3X+,Y+触摸屏正电极4,5X-,Y-触摸屏负电极6GND电源地7VBAT电池监控输入端。8AUX辅助输入端。9VREFA/D参考电压输入10IOVD
17、D数字电源输入端。11PENIRQ笔中断引脚,当有触摸事件发生时,向微控 制器申请中断服务。12DOUT串行数据输出,用于输出转换后的触摸位置 数据,12位工作方式下,最大为 4095。13BUSY忙指示,低电平有效14DIN串行数据输入、其控制数据通过该引脚输入。15CS片选16DCLK外部时钟输入引脚。6系统软件设计6.1系统软件结构LCDk层应用程序系统软件图形用户接口 uc/GUI任务管理卩/OS-ll系统BSF硬件平台初始化硬件底层驱动程序STM32F103处理器LCD底层驱动图6-1系统软件结构本实验的触摸模块主要的软件设计任务按功能和层次可分为如下几个部分:1、ucos 系统建立
18、任务,包括主任务,用户界面任务,CAN 报文接收任务等。2、ucGUI 图形用户界面程序,设计相关操作界面。3、中断服务程序,主要使用的中断处理函数为USB_HP_CAN_TX_IRQHandler(,) 执行CAN总线接收的中断处理。4、硬件平台初始化程序,包括时钟,CAN模块,触摸屏等等的初始化。5、LCD的底层驱动函数。6.2 头文件设计本实验由于使用函数以及宏定义较多,自定义了头文件#ifdef GLOBALS#define EXT#else#define EXT extern#endif#define Led_ON() GPIO_SetBits(GPIOB, GPIO_Pin_5);
19、#define Led_OFF() GPIO_ResetBits(GPIOB, GPIO_Pin_5);demo.hh 。 demo.h 内容如下:/LED1 亮/LED1 灭#define TP_CS() GPIO_ResetBits(GPIOB,GPIO_Pin_7)#define TP_DCS() GPIO_SetBits(GPIOB,GPIO_Pin_7)#define PEN GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6)II触摸SPI片选允许II触摸SPI片选允许II触摸检测#define RED 0XF800 #define GREEN 0X07E
20、0 #define BLUE 0X001F #define BRED 0XF81F #define GRED 0XFFE0 #define GBLUE 0X07FF;#define BLACK 0;6.2 硬件初始化程序硬件平台初始化主要包括系统时钟配置,FSMC接口的LCD初始化,SPI接口级触摸屏芯片初始化,GPIO初始化等系统常用配置。触摸屏初始化配置通过调用 tp_Config() 函数实现,代码如下:void tp_Config(void)GPIO_InitTypeDef GPIO_InitStructure;SPI_InitTypeDef SPI_InitStructure;/*
21、SPI1 时钟使能 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);/* SPI1 SCK(PA5、) MISO(PA6)、MOSI(PA7) 设置 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;/ 口线速度 50MHZ/ 复用模式/ 口线速度 50MHZ/ 推挽输出模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_M
22、ode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure);/* SPI1 触摸芯片的片选控制设置 PB7 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);/*由于SPI1总线上挂接了 4个外设,所以在使用触摸屏时,需要禁止其余3个SPI1外设, 才能
23、正常工作 */SPI1 SST25VF016B片选SPI1 VS1003 片选/SPI1 网络模块片选/SPI CS1/SPI CS4/SPI NSSGPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;GPIO_Init(GPIOA, &GPIO_In
24、itStructure);GPIO_SetBits(GPIOC, GPIO_Pin_4);GPIO_SetBits(GPIOB, GPIO_Pin_12);GPIO_SetBits(GPIOA, GPIO_Pin_4);/* SPI1 总线 配置 */SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; / 全双工 SPI_InitStructure.SPI_Mode = SPI_Mode_Master; / 主模式SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;/
25、8 位SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; 时钟极性 空闲状态时,SCK保持低电平 SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; 时/钟相位 数据采样从第一个时钟边 沿开始SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;/ 软件产生 NSSSPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64; / 波特率控制 SYSCLK6/4SPI_InitStructure.SPI_FirstBit =
26、 SPI_FirstBit_MSB; /数据高位在前SPI_I nitStructure.SPI_CRCPoly no mial = 7;CRC 多项式寄存器初始值为7SPI_Init(SPI1, &SPI_InitStructure);/* SPI1 使能 */SPI_Cmd(SPI1,ENABLE);FSMC接口的LCD初始化通过调用 FSMC_LCD_Init(函数实现信号引脚配置等功能。函数 代码如下:/* 名 称: void FSMC_LCD_Init(void)*功 能:基于FSMC接口的16位TFT接口初始化* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无*void
27、FSMC_LCD_Init(void)FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;FSMC_NORSRAMTimingInitTypeDef p;GPIO_InitTypeDef GPIO_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); / 使能 FSMC接口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;/背光控制GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;/通用推
28、挽输出模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /输出模式最大速度 50MHz GPIO_Init(GPIOD, &GPIO_InitStructure);/ 打开背光/TFT 复位脚/ 通用推挽输出模式/ 输出模式最大速度GPIO_SetBits(GPIOD, GPIO_Pin_13);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPI
29、O_Speed_50MHz;50MHzGPIO_Init(GPIOE, &GPIO_InitStructure);/* 启用FSMC复用功能,定义FSMC D0-D15及nWE, nOE对应的引脚*/* 设置 PD.00(D2), PD.01(D3), PD.04(nOE), PD.05(nWE), PD.08(D13), PD.09(D14), PD.10(D15),PD.14(D0), PD.15(D1) 为复用上拉 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPI
30、O_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/最大速度 50MHzGPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;/复用模式GPIO_Init(GPIOD, &GPIO_InitStructure);/* 设置 PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),PE.1
31、4(D11), PE.15(D12) 为复用上拉 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_Init(GPIOE, &GPIO_InitStructure);/* FSMC NE1 配置 PD7 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;GPIO_Init(GPIOD, &GPIO
32、_InitStructure);/* FSMC RS配置 PD11-A16 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ;GPIO_Init(GPIOD, &GPIO_InitStructure);p.FSMC_AddressSetupTime = 0x02; p.FSMC_AddressHoldTime = 0x00;p.FSMC_DataSetupTime = 0x05;p.FSMC_BusTurnAroundDuration = 0x00;p.FSMC_CLKDivision = 0x00;p.FSMC_DataLatency = 0x00;p
33、.FSMC_AccessMode = FSMC_AccessMode_B;FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataW
34、idth_16b;FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =FSMC_BurstAccessMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive =FSMC_WaitSignalActi
35、ve_BeforeWaitState;FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disabl
36、e;FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);/* 使能 FSMC BANK1_SRAM模式 */FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);6.3 3 寸 LCD 模块驱动程序/*本例程在 奋斗版 STM32 开发板 V5 上调试通过文件名 : Fun.c内容简述 :文件历史 :
37、版本号 日期作者 说明1.0 2013-10xjd*#include fsmc_sram.h#include font.h#include demo.h#define Bank1_LCD_D (uint32_t)0x60020000) /disp Data ADDR#define Bank1_LCD_C (uint32_t)0x60000000)/disp Reg ADDRvoid LCD_Init(void);void LCD_WR_REG(unsigned int index);void LCD_WR_CMD(unsigned int index,unsigned int val);voi
38、d LCD_WR_Data(unsigned int val);void LCD_test(void);void LCD_clear(unsigned int p);void Delay(_IO uint32_t nCount);unsigned short LCD_RD_data(void);extern void lcd_rst(void);extern void Delay(_IO uint32_t nCount);void TFT_CLEAR(u8 x,u16 y,u8 len,u16 wid);void TFT_DrawPoint(u8 x,u16 y);void TFT_ShowC
39、har(u8 x,u16 y,u8 num);void TFT_ShowNum(u8 x,u16 y,u32 num);void TFT_ShowString(u8 x,u16 y,const u8 *p);void TFT_ShowBmp(u8 x,u16 y,u8 lenth,u16 wide,const u8 *p);u16 POINT_COLOR=RED; / 默认红色 /* 名称: LCD_WR_REG(unsigned int index)* 功能: FSMC 写显示器寄存器地址函数* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无 */ void LCD_WR_REG(
40、unsigned int index)*(_IO uint16_t *) (Bank1_LCD_C)= index;/* 名称: void LCD_WR_CMD(unsigned int index,unsigned int val)* 功能: FSMC 写显示器寄存器数据函数* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无* void LCD_WR_CMD(unsigned int index,unsigned int val) *(_IO uint16_t *) (Bank1_LCD_C)= index;*(_IO uint16_t *) (Bank1_LCD_D)= val;
41、 /* 名称: unsigned short LCD_RD_data(void)* 功 能: FSMC 读显示区 16 位数据函数* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无 */ unsigned short LCD_RD_data(void)unsigned int a=0;a=*(_IO uint16_t *) (Bank1_LCD_D);/ 空操作a=*(_IO uint16_t *) (Bank1_LCD_D);/ 读出的实际 16 位像素数据return(a);/* 名称: LCD_WR_Data(unsigned int val)* 功 能: FSMC 写 16
42、位数据函数* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无*/void LCD_WR_Data(unsigned int val)*(_IO uint16_t *) (Bank1_LCD_D)= val;void LCD_WR_Data_8(unsigned int val)*(_IO uint16_t *) (Bank1_LCD_D)= val;/* 名称: void Delay(_IO uint32_t nCount)* 功能:延时函数* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无*/ void Delay(_IO uint32_t nCount)for(; nC
43、ount != 0; nCount-);/* 名称: void LCD_Init(void)* 功能: 2.4 寸 TFT 初始化函数* 入口参数:无* 出口参数:无* 说 明:* 调用方法:无*/ void LCD_Init(void) unsigned int i;/lcd_rst();GPIO_ResetBits(GPIOE, GPIO_Pin_1); / 硬件复位 Delay(0x1AFFf);GPIO_SetBits(GPIOE, GPIO_Pin_1 ); Delay(0x1AFFf);LCD_WR_CMD(0x0000, 0x00000);LCD_WR_CMD(0x0000, 0
44、x00000);LCD_WR_CMD(0x0000, 0x00000);LCD_WR_CMD(0x0000, 0x00000);/time, 0010 ,msLCD_WR_CMD(0x0400, 0x06200);LCD_WR_CMD(0x0008, 0x00808);LCD_WR_CMD(0x0300, 0x00C00);/gamma LCD_WR_CMD(0x0301, 0x05A0B);LCD_WR_CMD(0x0302, 0x00906);LCD_WR_CMD(0x0303, 0x01017);LCD_WR_CMD(0x0304, 0x02300);LCD_WR_CMD(0x0305,
45、 0x01700);LCD_WR_CMD(0x0306, 0x06309);LCD_WR_CMD(0x0307, 0x00C09);LCD_WR_CMD(0x0308, 0x0100C);LCD_WR_CMD(0x0309, 0x02232); LCD_WR_CMD(0x0010, 0x00016);/69.5HzLCD_WR_CMD(0x0011, 0x00101);/LCD_WR_CMD(0x0012, 0x00000);/LCD_WR_CMD(0x0013, 0x00001);/LCD_WR_CMD(0x0100, 0x00330);/BT,APLCD_WR_CMD(0x0101, 0x
46、00237);/DC0,DC1,VCLCD_WR_CMD(0x0103, 0x00F00);/VDVLCD_WR_CMD(0x0280, 0x06100);/VCMLCD_WR_CMD(0x0102, 0x0C1B0);/VRH,VCMR,PSON,PON /time, 0100 ,msLCD_WR_CMD(0x0001, 0x00100);LCD_WR_CMD(0x0002, 0x00100);LCD_WR_CMD(0x0003, 0x01030);LCD_WR_CMD(0x0009, 0x00001);LCD_WR_CMD(0x000C, 0x00000);LCD_WR_CMD(0x0090, 0x08000);LCD_WR_CMD(0x000F, 0x00000);LCD_WR_CMD(0x0210, 0x00000);LCD_WR_CMD(0x0211, 0x000EF);LCD_WR_CMD(0x0212, 0x00000);LCD_WR_CMD(0x0213, 0x0018F);/432=1AF, 400=18FLCD_WR_CMD(0x0500, 0x00000);LCD_WR_CMD(0x0501, 0x00000);LCD_WR_CMD(0x0502, 0x0005F);LCD_WR_CMD(0x0401, 0x00001
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幕墙系统干挂石材施工方案
- IT项目管理实施方案与最佳实践
- 2024年生活饮用水处理设备项目评价分析报告
- 2024-2030年中国仓储物流行业发展模式及投资规划分析报告
- 2024-2030年中国食品安全检测仪器行业前景趋势与投资预测分析研究报告
- 2024年企业碳中和解决方案合同
- (2024版)包含促销活动的商品买卖合同
- 自建房购房合同模板
- 网站策划合同范本示例
- 招标文件方案设计标准
- 一校一策规划实施方案
- 《对外开放的中国》课件
- GB/T 43619-2023超压保护安全装置受控安全泄压系统
- 工程地质勘察收费标准
- 劳务投标技术标
- 幼儿园大班韵律《朱迪警官破案记》课件
- 《强化学习简介》课件
- 《常用局域网设备》课件
- 卵巢恶性肿瘤教学查房
- 《玄武岩纤维沥青混合料技术规范》征求意见稿
- 2023年秋季国开《学前教育科研方法》期末大作业(参考答案)
评论
0/150
提交评论