STM32入门学习笔记之TFTLCD显示实验1

发布者:CrystalDawn最新更新时间:2024-04-07 来源: elecfans关键字:STM32  TFTLCD  显示实验 手机看文章 扫描二维码
随时随地手机看文章

10.1 概述

之前在51为核心的系统里面,常用的显示器件有LED,数码管,LCD1602和LCD12864,这些器件都有一个共同的特点,那就是只有一个颜色,没有办法显示彩色图片,为了显示彩色图片,我们引入了TFT显示模组。TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:ThinFilmTransistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。


目前常用的TFT显示模组按照接口类型可以分为MCU屏幕与RGB屏幕,其中MCU在STM32F1系列中比较常用,原因是MCU屏幕内部集成了显示控制器,只需要按照手册指定的协议将输入发送过去即可,但是MCU屏幕受限于屏幕尺寸,一般不会超过4.3英寸,RGB屏幕内部没有控制器,需要单片机或者CPU自带控制器,但是RGB屏幕尺寸较大,且刷新速度快,通用性强,在生活中使用的更广泛,由于STM32F1单片机中没有RGB控制器(LTDC模块),所以采用核心为5510的TFT屏幕来进行TFT显示实验。


注 :我们在网上看到的大尺寸MCU屏幕一般都是以屏幕+PCB的形式,这是因为板子上携带了8080并口转RGB芯片,所以这种情况下,也可以使用MCU屏幕的驱动方式来进行驱动。


10.2 TFTLCD模块原理图

10.2.1 原理图

图片

RST:复位端口,高电平有效

CS:片选,低电平有效

RS:数据命令选择,低电平代表命令,高电平代表数据

WR:写控制,高电平有效

RD:读控制,高电平有效

DB0~DB15:16位并行数据口

VCC:电源正极

GND:电源负极

LEDK:背光LED负极

LEDA:背光LED正极

Y-:触摸屏Y轴数据

X-:触摸屏X轴数据

Y+:触摸屏Y轴数据

X+:触摸屏X轴数据


10.3 FSMC

10.3.1 FSMC简介

FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32F1的FSMC接口支持包括SRAM、NANDFLASH、NOR FLASH和PSRAM等存储器。一般大容量,且引脚数目在100脚及以上的 STM32F103芯片都带有FSMC接口,FSMC的框图如图所示。

图片

从上图可知,STM32的FSMC将设备分为3种:NOR/PSRAM设备,NAND设备和PC设备,共用地址数据总线等信号,通过CS端口来区分不同的设备,比如我们这个实验中LCD的片选就是接在FSMC_NE4端口上,其实本质上就是把TFTLCD作为SRAM来控制。


外部SRAM设备的连接一般有地址线(A0~A18),数据线(D0~D15),写信号(WR),读信号(RD)和片选,TFTLCD显然除了不具备地址线,其他的信号都是具备的,所以我们可以采用SRAM的方式来进行TFT的控制,这种控制方式的好处就是对比传统的GPIO翻转可以更快的将数据送入TFT。


STM32F1的FSMC支持8/16/32位数据宽度,我们的TFT模块采用的是16位数据宽度,所以只需要将FSMC配置为外置16位宽度即可。FSMC的外部存储器划分为了固定的4个256 M的存储块,如下图所示。


我们在驱动TFTLCD的时候,用到的存储块是块1,STM32将FSMC的存储块1分为4个区,每个区管理64M的空间,每个区都有独立的寄存器对连接的存储器进行配置,BANK1的256M空间由28根地址线寻址,这28根地址线如下表所示,其中低26个位来自外部存储器的地址,我们可以将TFTLCD的片选接在低26位上,通过发送地址来选中片选,只有高2位才是内部可以控制的。

BANK1区域片选地址范围地址线
[27:26][25:0]

区域1NE10x60000000 ~ 0x63FFFFFF00
区域2NE20x64000000 ~ 0x67FFFFFF01
区域3NE30x68000000 ~ 0x6BFFFFFF10
区域4NE40x6C000000 ~ 0x6FFFFFFF11

注:


当Bank1接的是16位宽度存储器的时候:地址线的[25:1]对应FSMC_A[24:0]


当Bank1接的是8位宽度存储器的时候:地址线的[25:0]对应FSMC_A[25:0]


对于NOR FLASH控制器,主要通过3个寄存器来设置FSMC的时序参数,NORFLASH控制器支持同步和异步突发两种访问方式。


选用同步突发访问方式时,FSMC将系统时钟分频后,发送给外部存储器作为同步时钟信号 FSMC_CLK。此时需要的设置的时间参数有2个,即系统时钟HCLK与FSMC_CLK的分频系数(可以2~16分频),同步突发访问中获取第一个数据所需要的等待延迟。


选用异步突发访问方式时,则需要设置3个时间参数:地址建立时间、数据建立时间和地址保持时间。FSMC综合了SRAM/ROM、PSRAM和NOR Flash产品的信号特点,定义了4种不同的异步时序模型。选用不同的时序模型时,需要设置不同的时序参数。


在实际扩展时,根据选用存储器的特征确定时序模型,从而确定各时间参数与存储器读/写周期参数指标之间的计算关系,利用该计算关系和存储芯片数据手册中给定的参数指标,可计算出FSMC所需要的各时间参数,从而对时间参数寄存器进行合理的配置。


我们现在使用异步模式A方式来控制LCD,模式A的读操作时序如下图所示。

图片

模式A支持独立的读写时序控制,这个对驱动TFTLCD来说非常有用,因为TFTLCD在读的时候,一般比较慢,而在写的时候可以比较快,如果读写用一样的时序,那么只能以读的时序为基准,从而导致写的速度变慢,或者在读数据的时候,重新配置FSMC的延时,在读操作完成的时候,再配置回写的时序,这样虽然也不会降低写的速度,但是频繁配置,比较麻烦。而如果有独立的读写时序控制,那么我们只要初始化的时候配置好,之后就不用再配置,既可以满足速度要求,又不需要频繁改配置。


模式A的写操作如下图所示。

图片

10.3.2 相关寄存器

(1)SRAM/NOR 闪存片选控制寄存器:FSMC_BCRx(x=1~4)

31302928272625242322212019181716
-CBURSTRW-












1514131211109876543210
-EXTMODWAITENWRENWAITCFGWRAPMODWAITPOLBURSTEN-FACCENMWIDMTYPMUXENMBKEN


关键字:STM32  TFTLCD  显示实验 引用地址:STM32入门学习笔记之TFTLCD显示实验1

上一篇:STM32入门学习笔记之TFTLCD显示实验2
下一篇:用STM32与PID算法做一个磁悬浮装置

推荐阅读最新更新时间:2026-03-22 13:21

STM32f4---TFTLCD显示实验代码(02)
第七个要介绍的函数是坐标设置函数,该函数代码如下: //设置光标位置 //Xpos:横坐标 //Ypos:纵坐标 void LCD_SetCursor(u16 Xpos, u16 Ypos) { if(lcddev.id==0X9341||lcddev.id==0X5310) { LCD_WR_REG(lcddev.setxcmd); LCD_WR_DATA(Xpos 8); LCD_WR_DATA(Xpos&0XFF); LCD_WR_REG(lcddev.setycmd); LCD_WR_DATA(Ypos 8); LCD_WR_DATA(Ypos&0XFF); }else if(lc
[单片机]
STM32f4---TFTLCD显示实验代码(03)
第十个要介绍的是字符显示函数LCD_ShowChar,该函数同前面OLED 模块的字符显示函数差不多,但是这里的字符显示函数多了1 个功能,就是可以以叠加方式显示,或者以非叠加方式显示。叠加方式显示多用于在显示的图片上再显示字符。非叠加方式一般用于普通的显示。 该函数实现代码如下: //在指定位置显示一个字符 //x,y:起始坐标 //num:要显示的字符: --- ~ //size:字体大小 12/16/24 //mode:叠加方式(1)还是非叠加方式(0) void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) { u8 temp,t1,t; u
[单片机]
STM32 ILI9341驱动TFTLCD(七)LCD画实心三角形、矩形、圆形
上次测试画直线函数时,已经通过三条直线画出了一个空心三角形,今天来画一下实心的,分别画下实心三角形、实心矩形、实心圆。 1、实心三角形 实心三角形,可以先画任意两条边,然后以这两条边的交点为顶点,向第三条直线的点画直线。在画第三条直线时,思想和画直线是一样的,只是在画好点之后,多加了顶点向刚画好的点画直线这一步。到第三条直线画完时,实心三角形也就画好了。 画实心三角形函数 void LCD_DrawSolidTriangle(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2,u16 color) { u16 xm = 0,ym = 0; u16 step = 0; L
[单片机]
<font color='red'>STM32</font> ILI9341驱动<font color='red'>TFTLCD</font>(七)LCD画实心三角形、矩形、圆形
STM32 ILI9341驱动TFTLCD(八)LCD碰撞小球
掌握了基本图形的画法后,我们可以开始尝试让这些基本图形变成动态的,就像一种桌面,有很多个小球,相互碰撞并改变小球颜色的动态效果。 要达到这种效果,首先要把这个大问题分解成若干个小问题: 1、先让一个小球在屏幕中运动到边界时能弹回; 2、两个小球同时运动时,除了到达边界弹回,还要两个小球相碰撞时弹回并改变颜色; 3、更多小球同时运动。 1、单球运动 单球运动,就是移动画出来的画空心圆,也就是只要改变圆心就可以实现,但是在画下一个圆之前要把上一次画的圆给清除掉。画完后,接着要判断圆心到边界的距离与半径的大小关系,确定下一次的运动方向。 单球运动函数 //单个球运动,碰到边界改变运动方向 //dir为运
[单片机]
STM32 ILI9341驱动TFTLCD屏(二)
ILI9341集成了240x320x18位图形类型静态RAM,也可称为显存。这个172,800字节的内存允许存储具有18位分辨率(262K-color)的240xRGBx320图像。当同时存在面板显示读操作和对帧内存相同位置的接口读/写操作时,对显示没有异常的可见效果。 移动图像区域可以通过窗口地址函数在内部GRAM中指定。可以有选择地更新指定的窗口区域,这样就可以独立于静止图像区域同时显示移动图像。 ILI9341有很多调节指令集: 从图中表格可以看到指令集的时序和指令码,可以根据需要把指令封装成相对应的功能函数。举例说明一个,如果想要配置软件复位函数,首先找到软件复位相对应的说明。 软件复位的指令码为0x
[单片机]
<font color='red'>STM32</font> ILI9341驱动<font color='red'>TFTLCD</font>屏(二)
STM32 TFTLCD原理与驱动与指令介绍
一,TFTLCD简介 TFTLCD : 薄膜晶体管液晶显示器 在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT) 克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,提高图像质量 TFTLCD优点: 亮度好,对比度高,层次感强,颜色鲜艳,是目前最主流的LCD显示器 广泛用于电视,手机,电脑,平板等各种的电子产品 二,ALINETEK 2.8寸 TFTLCD模块介绍 240*320分辨率 16位真彩显示(65536色) 自带电阻触摸屏 自带背光电路 三,ALINETEK 2.8寸 TFTLCD模块原理图 1,2.8寸LCD引脚 2,TFTLCD 为对外接口,引出2*17排针 3,电阻触摸
[单片机]
<font color='red'>STM32</font> <font color='red'>TFTLCD</font>原理与驱动与指令介绍
【STM32CubeMX】10,STM32之FSMC 之TFTLCD,移植,显示变量
1,学了这章之后,主要掌握了怎么移植标准库的函数 2,对.c .h文件的#include文件的修改 3,在LCD中,最关键的是读写命令地址的书写 4,LCD的初始化可以看给的参考例程 5,变量的显示sprintf函数https://baike.baidu.com/item/sprintf/9703430?fr=aladdin http://www.openedv.com/posts/list/61386.htm 6, 在stm32 例子的 c语言 程序中看到这样一句 *(__IO uint16_t *) (((uint32_t)0x60020000) ) 7,fsm
[单片机]
【STM32CubeMX】10,<font color='red'>STM32</font>之FSMC 之<font color='red'>TFTLCD</font>,移植,<font color='red'>显示</font>变量
stm32 TFTLCD驱动原理(三)
代码的实现 (1) 首先是对 TFTLCD 进行引脚初始化 static void LCD_GPIO_Config ( void ) { GPIO_InitTypeDef GPIO_InitStructure; /* 使能复用IO时钟:复用为fsmc功能 */ RCC_APB2PeriphClockCmd ( RCC_APB2Periph_AFIO, ENABLE ); /* 使能FSMC对应相应管脚时钟 */ RCC_APB2PeriphClockCmd ( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE ); FSMC_LCD_CS_
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved