第16讲 LCD显示实验.ppt-文档资料.ppt
-
资源ID:82464968
资源大小:1.92MB
全文页数:19页
- 资源格式: PPT
下载积分:14.8金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第16讲 LCD显示实验.ppt-文档资料.ppt
第16讲 LCD显示实验广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频LCDLCD原理讲解原理讲解FSMCFSMC原理原理源码分析源码分析 技术支持论坛技术支持论坛:开源电子网开源电子网 官方微博官方微博:“正点原子正点原子”微博网址微博网址 http:/ 淘宝店铺淘宝店铺:http:/ 广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频CS:TFTLCD片选信号。片选信号。WR:向:向TFTLCD写入数据。写入数据。RD:从:从TFTLCD读取数据。读取数据。D15:0:16位双向数据线。位双向数据线。RST:硬复位:硬复位TFTLCD。RS:命令:命令/数据标志(数据标志(0,读写命令;,读写命令;1,读写数据)。,读写数据)。80并口连接线:注意:注意:RST信号线是直接接到信号线是直接接到STM32的复位脚上,并不由软件控制的复位脚上,并不由软件控制。另外我们还需要一个背光控制线来控制另外我们还需要一个背光控制线来控制TFTLCD的背光。的背光。所以,我们总共需要的所以,我们总共需要的IO口数目为口数目为21个。个。我们标注的我们标注的DB1DB8,DB10DB17,是相对于,是相对于LCD控制控制IC标注的,标注的,实际上大家可以把他们就等同于实际上大家可以把他们就等同于D0D15,这样理解起来就比较简单一点,这样理解起来就比较简单一点。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频ALIENTEK提供的2.8寸TFTLCD模块,其驱动芯片有很多种类型,比如有:ILI9320/ILI9325/ILI9328/ILI9341 /SSD1289/LGDP4531/LGDP4535/R61505/SPFD5408/RM68021等(具体的型号,大家可以通过下载本章实验代码,通过串口或者 LCD显示查看)。这里我们仅以ILI9320控制器为例进行介绍,其他的控制基本 都类似,我们就不详细阐述了。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频ILI9320常用命令:广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频R0,这个命令,有两个功能,如果对它写,则最低位为OSC,用于开启或关闭振荡器。而如果对它读操作,则返回的是控制器的型号。R32,R33,设置GRAM的行地址和列地址。R32用于设置列地址(X坐标,0239),R33用于设置行地址(Y坐标,0319)。当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到该点,然后写入颜色值就可以了。R34,写数据到GRAM命令,当写入了这个命令之后,地址计数器才会自动的增加和减少。该命令是我们要介绍的这一组命令里面唯一的单个操作的命令,只需要写入该值就可以了,其他的都是要先写入命令编号,然后写入操作数。R80R83,行列GRAM地址位置设置。这几个命令用于设定你显示区域的大小,我们整个屏的大小为240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果用先写坐标,后写数据这样的方式来实现,则速度大打折扣。此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据R3的设置自动增加/减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频R3,入口模式命令。我们重点关注的是I/D0、I/D1、AM这3个位,因为这3个位控制了屏幕的显示方向。AM:控制GRAM更新方向。当AM=0的时候,地址以行方向更新。当AM=1的时候,地址以列方向更新。、I/D1:0:当更新了一个数据之后,根据这两个位的设置来控制地址计数器自动增加/减少1。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频TFTLCD显示需要的相关设置步骤如下:显示需要的相关设置步骤如下:1)设置)设置STM32与与TFTLCD模块相连接的模块相连接的IO。这一步,先将我们与TFTLCD模块相连的IO口进行初始化,以便驱动LCD。这里我们用到的是FSMC,FSMC将在18.1.2节向大家详细介绍。2)初始化)初始化TFTLCD模块。模块。其实这里就是上和上面OLED模块的初始化过程差不多。通过向TFTLCD写 入一系列的设置,来启动TFTLCD的显示。为后续显示字符和数字做准备。3)通过函数将字符和数字显示到)通过函数将字符和数字显示到TFTLCD模块上。模块上。这里就是通过我们设计的程序,将要显示的字符送到TFTLCD模块就可以了,这些函数将在软件设计部分向大家介绍。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频FSMC介绍:u大容量,且引脚数在100脚以上的STM32F103芯片都带有FSMC接口,战舰STM32开发板的主芯片为STM32F103ZET6,是带有FSMC接口的。u FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存储器。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频FSMC提供了所有的提供了所有的LCD控制器的信号:控制器的信号:FSMC NEx:分配给NOR的256M,再分为4个区,每个区用来分配一个外设,这四个外设的片选分为是NE1-NE4,对应相应的引脚。FSMC NOE:输出使能,连接LCD的RD脚。FSMC NWE:写使能,连接LCD的RW脚。FSMC_D16:0 16bit的数据总线FSMC_A25:0:用在LCD显示RAM和寄存器之间进行选择的地址线,即该线用于选择LCD的 RS脚,该线可用地址线的任意一根。注:RS=0时,表示读写寄存器;RS=1表示读写数据RAM。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频typedef struct u16 LCD_REG;u16 LCD_RAM;LCD_TypeDef;/使用NOR/SRAM的 Bank1.sector4,地址位HADDR27,26=11 A10作为数据命令区分线/注意设置时STM32内部会右移一位对其!111110=0X3E#define LCD_BASE (u32)(0 x6C000000|0 x000007FE)#define LCD (LCD_TypeDef*)LCD_BASE)0 x7FE =011111111110b因为结构体成员变量都是16位,所以+2偏移到下一个变量,那么0 x7FE+2=100000000000b刚好两个成员地址最高位分别为0和1,从而区分命令和数据。广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频void LCD_WR_REG(u16 regval)LCD-LCD_REG=regval;/写入要写的寄存器序号/写LCD数据;data:要写入的值void LCD_WR_DATA(u16 data)LCD-LCD_RAM=data;/读LCD数据;返回值:读到的值u16 LCD_RD_DATA(void)return LCD-LCD_RAM;/写寄存器;LCD_Reg:寄存器地址;LCD_RegValue:要写入的数据void LCD_WriteReg(u8 LCD_Reg,u16 LCD_RegValue)LCD-LCD_REG=LCD_Reg;/写入要写的寄存器序号 LCD-LCD_RAM=LCD_RegValue;/写入数据 广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频 FSMC_NORSRAMTimingInitTypeDef readWriteTiming;FSMC_NORSRAMTimingInitTypeDef writeTiming;readWriteTiming.FSMC_AddressSetupTime=0 x01;/地址建立时间(ADDSET)为2个HCLK 1/36M=27ns readWriteTiming.FSMC_AddressHoldTime=0 x00;/地址保持时间(ADDHLD)模式A未用到 readWriteTiming.FSMC_DataSetupTime=0 x0f;/数据保存时间为16个HCLK,因为液晶驱动IC的读数据的时候,/速度不能太快,尤其对1289这个IC。readWriteTiming.FSMC_BusTurnAroundDuration=0 x00;readWriteTiming.FSMC_CLKDivision=0 x00;readWriteTiming.FSMC_DataLatency=0 x00;readWriteTiming.FSMC_AccessMode=FSMC_AccessMode_A;/模式A writeTiming.FSMC_AddressSetupTime=0 x00;/地址建立时间(ADDSET)为1个HCLK writeTiming.FSMC_AddressHoldTime=0 x00;/地址保持时间(A writeTiming.FSMC_DataSetupTime=0 x03;/数据保存时间为4个HCLK writeTiming.FSMC_BusTurnAroundDuration=0 x00;writeTiming.FSMC_CLKDivision=0 x00;writeTiming.FSMC_DataLatency=0 x00;writeTiming.FSMC_AccessMode=FSMC_AccessMode_A;/模式A 广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频 FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM4;/这里我们使用NE4,也就对应BTCR6,7。FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=FSMC_DataAddressMux_Disable;/不复用数据地址 FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_SRAM;/FSMC_MemoryType_SRAM;/SRAM FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;/存储器数据宽度为16bit FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode=FSMC_BurstAccessMode_Disable;/FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity=FSMC_WaitSignalPolarity_Low;FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable;FSMC_NORSRAMInitStructure.FSMC_WrapMode=FSMC_WrapMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive=FSMC_WaitSignalActive_BeforeWaitState;FSMC_NORSRAMInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable;/存储器写使能 FSMC_NORSRAMInitStructure.FSMC_WaitSignal=FSMC_WaitSignal_Disable;FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Enable;/读写使用不同的时序 FSMC_NORSRAMInitStructure.FSMC_WriteBurst=FSMC_WriteBurst_Disable;FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&readWriteTiming;/读写时序 FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&writeTiming;/写时序 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);/初始化FSMC配置 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4,ENABLE);/使能BANK1 广州星翼电子广州星翼电子 官方淘宝店官方淘宝店:http:/http:/ 技术支持论坛技术支持论坛:原子教你玩原子教你玩STM32STM32系列视频系列视频 THE END!