Stm32Cubemx配置TFT——LCD

一 LCD的硬件:

(1) 16个数据线
(2) CS ——片选
(2) WR/RD 写和读信号
(3) RST 复位信号
(4) RS —— 命令/ 数据标志 (0 —— 命令 1 —— 数据)

二 FSMC接口

  1. FSMC把外部设备分为3类(NOR/PSRAM设备, NAND设备, PCl卡设备) , 共用地址/数据总线,用CS 来区分不同的设备 (比如我们使用 NE4 来作为片选, 帮它作为SRAM来控制)
    2。FSMC 支持8/16/32 位数据宽度, 这里我们使用 16位宽度
  2. FSMC 的外部设备地址印象
    FSMC总共管理1GB 空间, 分为4个存储块(Bank)

每个存储块 分为 4个区, 每个区64M
在这里插入图片描述

这里我们选块1 (PSRAM)

Bank 1被分为 4 个区 , bank1 256M 字节空间 由 28根地址线 HADDR[27: 0]寻址

其中[25:0] 由外部存储器决定
而[26:27] 是对4个区进行寻址—— 决定片选信号

在这里插入图片描述

在这里插入图片描述

NOR FLASH 控制器

  1. 支持同步和异步突发2种访问方式
  2. 对于异步突发模式: 主要设置 3个参数 地址建立时间(ADDSET), 数据建立时间(DATASET)和地址保持时间(ADDHLD)
  3. FSMC 综合了SRAM/ROM, 定义了4种不同时序模型

在这里插入图片描述

  1. 这里我们使用 ModeA 时序, modeA支持读写独立时序

BANK1 的几个寄存器

1 控制寄存器

在这里插入图片描述

在这里插入图片描述

2 片选时序控制器

  1. DATASET(数据保持时间)—— 意义是DATAST个 HCLK 时钟模式, 最大 255, 对ILI9341 就是RD 低电平保持的时间 一般是355ns , 而HCLLK的时钟是72M, 我们这里设置15 (就是16 个 HCLK时钟)
  2. ADDRSET(地址保持时间)—— 最大 为15个HCLK, 相当于ED高电平持续的时间 为90ns, 我们这里设置为 1

3 SRAM/NOR 闪写寄存器

在这里插入图片描述

三: STM32CUBEMx 配置

image.png

image.png

image.png

image.png

四: 驱动文件加入

只需要修改 LCD的地址, 即可使用

image.png

五 :程序调用

  1. LCD 初始化(一定要使用串口, 如果串口初始化成功, 就一定会发它的ID 出来, 用它来判断LCD 是否被唤醒 )
  2. 打开背光
源码(以及工程文件)分享: 链接:https://pan.baidu.com/s/1OJWb8JL5Yk2YySgIP9jmbQ 提取码:yx9x
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐