基于STM32F407的FSMC功能实现对TFT的控制

本文详细介绍了如何使用STM32的FSMC(灵活静态存储控制器)来驱动TFT液晶屏,包括FSMC的基本概念、接口配置、时序匹配以及具体的代码实现。通过对FSMC寄存器的配置,实现了将MCU的引脚连接到TFT接口,并通过FSMC的配置适应TFT的独特时序,如复用地址总线为数据总线并利用额外的控制信号。文章还提供了完整的配置代码示例,以及TFT初始化的步骤,为读者提供了实际操作的参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对FSMC的理解

1.FSMC即灵活的静态存储控制器,能够连接同步、异步存储器和 16 位 PC 存储卡。专业讲解可以看STM32F4xx中文参考手册。

2.个人理解:

其实它就是为了扩展存储做了一种接口时许,因为想尽量多的兼容各个存储,所以他需要灵活配置,比如说配置成SRAM接口时序,NAND FLASH接口时序,NOR FLASH接口时序,PSRAM接口时序,等等。

通过看这些存储的接口时序,会发现他们有共性比如说肯定有地址总线,数据总线和OE,WE,NWAIT控制信号,那区别就是不同的存储可能会增加一些自己独特的控制信号。参考官方的这张图:

 

我们的目的就是通过配置FSMC的寄存器,让他匹配上这些存储以及有类似接口的一些设备,比如本文要实现的TFT控制就有类似接口时序。

TFT的接口时序:

 从图可以看到TFT的时序有:

数据总线(对应FSMC的D0-D15),

WR写信号(FSMC的NWE),

RD读信号(FSMC的NOE),

CS片选信号(对应FSMC_NEx),

唯一的区别是 :

1.TFT有RS信号,作用是表示写命令还是写数据。

2. TFT时序没有地址总线

细品一下,没有地址总线光用数据总线的话,那怎么知道数据写的是什么数据呢?其实它是把地址总线和数据总线复用成一个了,然后通过RS信号来区分是地址总线还是数据总线,只是学名叫成了写命令和写数据。

借用这个思想,那我们随便找地址总线中的一条地址线作为RS,通过这条地址线的高低来等同RS的作用,即区分是写命令还是写数据,比如我们用第19条即FSMC_A19,那么写命令就是往第20位地址是0的时候写,写数据就是往第20位是1的地址里写。

原理明白后,把TFT的pin和MCU的pin连接起来即可,剩余RST随便找个IO控制一下。

MCU pin----FSMC复用            //LCD pin
PD0 -----------FSMC_D2       //DB2
PD1 -----------FSMC_D3       //DB3
PD4 -----------FSMC_NOE     &nbs

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值