【STM32F723E-DISCO开发板试用体验】04-LCD显示

  • cztqwan
  • LV5工程师
  • |      2017-09-02 19:28:32
  • 浏览量 1430
  • 回复:5
本帖最后由 cztqwan 于 2017-9-2 19:32 编辑 【STM32F723E-DISCO开发板试用体验】04-LCD显示 一、简介 STM32F723E-DISCO上带了一块240x240像素的TFTLCD屏幕,本贴就简单介绍如何驱动该屏幕。 STM32F723E-DISCO上的TFTLCD屏幕是一块具有MCU接口的屏幕,其驱动芯片为st7789h2。st7789h2液晶控制器自带显存,通过80并口和STM32F723连接,STM32F723 通过FMC接口来控制TFTLCD的显示。 二、硬件电路分析 从电路图中可以看出,该驱动芯片采用了16位的数据线,主要的控制引脚如下: /CS: TFTLCD 片选信号。 /WR:向TFTLCD写入数据。 /RD:从TFTLCD读取数据。 DB:16位双向数据线。 RESET:硬复位 TFTLCD。 RS:命令/数据标志(0,读写命令;1,读写数据)。 FMARK:信号同步。 LEDA和LEDK:背光控制。从背光的硬件电路可以看到可以通过PH11进行控制。 该屏幕和STM32F723的接口如下: STM32F723的FMC将外部设备分为3类:NOR/PSRAM设备、NAND设备和SDRAM设备。它们共用地址数据总线等信号,具有不同的 CS 以区分不同的设备。STM32F723E-DISCO的TFTLCD选择FMC_NE2做片选,其实就是将 TFTLCD 当成 SRAM来控制。 LCD_BL(背光控制)对应 PH11; LCD_CS 对应 PG9 即 FMC_NE2; LCD_RS 对应 PF0 即 FMC_A0; LCD_WR 对应 PD5 即 FMC_NWE; LCD_RD 对应 PD4 即 FMC_NOE; LCD_D则直接连接在 FMC_D15~FMC_D0; 三、程序分析 在stm32cubef7的官方示例中包含了TFTLCD的实例代码,主要包括以下文件: 其中: st7789h2.c:主要是驱动芯片的初始化和底层函数封装。 stm32f713e_discovery.c:主要是STM32F723的底层接口初始化,封装后供st7789h2.c调用。 stm32f713e_discovery_lcd.c:主要是对中对屏幕的操作函数的封装,并且实现了字符显示、常用图形显示等功能。 为了简便,在LED工程的基础上,在HARDWARE目录下新增lcd.c和st7789h2.c文件以及它们的头文件。lcd.c包含了上面提到的stm32f713e_discovery.c和stm32f713e_discovery_lcd.c的主要内容。 接下来,就来看看TFTLCD是怎么初始化的。首先,在主函数中,调用BSP_LCD_Init()函数进行LCD的初始化。 在BSP_LCD_Init()中,首先进行了MPU内存保护的设置,然后调用BSP_LCD_InitEx()并传入设置屏幕显示方向的参数进行LCD的初始化。 在BSP_LCD_InitEx()中,调用BSP_LCD_MspInit()函数对背光、复位和信号同步引脚进行初始化,接着获取ST7789H2驱动结构体,并调用ST7789H2的初始化函数对ST7789H2进行初始化。 LcdDrv->Init()函数指向ST7789H2_Init()函数,ST7789H2_Init()函数中用到了许多LCD_IO_*开头的函数,ST7789H2_Init()对ST7789H2进行初始化。 LCD_IO_*开头的函数是FMC的操作函数的封装,FMC_BANK2_Init()初始化了FMC接口。 在lcd.c文件中,实现了许多和LCD显示相关的函数,包括字符显示、基本图形绘制和图片显示等功能。 四、效果 利用上面提到的功能函数,可以在TFTLCD上显示内容了,效果如下图。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:4
great_CC 2017-09-30
这小屏幕显示起来也蛮好看,可惜没字库,是不是要求的太多了。
0   回复
举报
发布
mr_liu 2017-09-21
0   回复
举报
发布
hayden 2017-09-20
电容屏的确不错
0   回复
举报
发布
lygo 2017-09-07
哇 这个就比较厉害了
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子