173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

tftlcd液晶显示与stm32的连接

keros@mark 2023-03-19 资讯中心

STM32 FSMC与lcd的连接

可以采用别的驱动方式,如SPI不过刷屏比较慢。这个应该是LCD80用的并口,16条数据线,片选cs,数据命令选择rs,复位rst,写控制wr,读控制rd,其中D0~D15是管脚的复用功能,这个不能边,片选CS必须连接到FSMC的SRAM区的相应的块选管脚(也是管脚复用)上,想用第几区就把CS连到相应的管脚,可以换;数据命令选择rs,复位rst,写控制wr,读控制rd这些都可以自行更改,不过更改后程序要相应的修改,尤其是注意数据命令选择rs的修改。其他脚如BL_PWM,是背光控制,pwm波占空比可以调节屏幕亮度;剩下的一些引脚是与触屏相关的引脚,这些都可以改变。

TFTLCD显示

TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。

步骤:

1 ) 设置 STM32 与 与 TFTLCD 模块相连接的 IO 。

这一步,先将我们与 TFTLCD 模块相连的 IO 口进行初始化,以便驱动 LCD。这里需要根据连接电路以及 TFTLCD 模块的设置来确定。

2 ) 初始化 TFTLCD 模块。

即图 16.1.4 的初始化序列,这里我们没有硬复位 LCD,因为 MiniSTM32 开发板的 LCD 接口,将 TFTLCD 的 RST 同 STM32 的 RESET 连接在一起了,只要按下开发板的 RESET 键,就会对 LCD 进行硬复位。初始化序列,就是向 LCD 控制器写入一系列的设置值(比如伽马校准),这些初始化序列一般 LCD 供应商会提供给客户,我们直接使用这些序列即可,不需要深入研究。在初始化之后,LCD 才可以正常使用。

3 ) 通过函数将字符和数字显示到 TFTLCD 模块上。

这一步则通过图 16.1.4 左侧的流程,即:设置坐标写 GRAM 指令写 GRAM 来实现,但是这个步骤,只是一个点的处理,我们要显示字符/数字,就必须要多次使用这个步骤,从而达到显示字符/数字的目标,所以需要设计一个函数来实现数字/字符的显示,之后调用该函数,就可以实现数字/字符的显示了。

可以修改LCD长宽型号等参数便于移植。

封装的主要函数有:

void LCD_Init(void); //初始化

void LCD_DisplayOn(void); //开显示

void LCD_DisplayOff(void); //关显示

void LCD_Clear(u16 Color); //清屏

void LCD_SetCursor(u16 Xpos, u16 Ypos); //设置光标

void LCD_DrawPoint(u16 x,u16 y); //画点

void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color); //快速画点

u16 LCD_ReadPoint(u16 x,u16 y); //读点

void LCD_Draw_Circle(u16 x0,u16 y0,u8 r); //画圆

void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); //画线

void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); //画矩形

void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); //填充单色

void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //填充指定颜色

void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode); //显示一个字符

void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size); //显示一个数字

void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode); //显示 数字

void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p); //显示一个字符串,12/16字体

void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue);

u16 LCD_ReadReg(u16 LCD_Reg);

void LCD_WriteRAM_Prepare(void);

void LCD_WriteRAM(u16 RGB_Code);

void LCD_Scan_Dir(u8 dir); //设置屏扫描方向

void LCD_Display_Dir(u8 dir); //设置屏幕显示方向

void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height); //设置窗口

STM32Cube移植

(1)分析

硬件用开发板已经连接好,主要是软件对端口的一些初始化配置。还有驱动的移植。

(2)TFTLCD模块接口

70分悬赏!!stm32,3.2寸tft屏幕接线问题。要仔细。怎么接线?d0—d15就不用说了。还

这是采用FSMC方式把TFT当做一个内存块来读写数据。第一张图错了吧,没理解设计着意图。TFT采用FSMC一般来说有21根线:1)数据线D0-D15;2)TFT片选CS;3)TFT复位RST;4)FSMC_NOE为读信号;5)FSMC_NWE为写信号;6)FSMC的A0~A18为地址线,取其中一个作为TFT的数据/命令控制线RS,比如选A16:FSMC[24:0]对应HADDR[25:1],基地址 = 0X60000000,RAM基地址 = 0X60020000 = 0X60000000+2^16*2 = 0X60000000 + 0X20000 = 0X60020000,加入宏定义#define Bank1_LCD_D ((u32)0x60020000)即对地址A16写1为数据格式,再定义#define Bank1_LCD_C ((u32)0x60000000)即地址写0为命令格式。建议看看FSMC总线~~

本文标签:tftlcd液晶显示与stm32的连接

产品列表
产品封装
友情链接