STM32F1 的 FSMC 支持 8/16/32 位数据宽度,我们这里用到的 LCD 是 16 位宽度的,所以在设置的时候,选择 16 位宽就 OK 了。我们再来看看 FSMC 的外部设备地址映像, STM32F1的 FSMC 将外部存储器划分为固定大小为 256M 字节的四个存储块,如图 所示: FSMC 总共管理 1GB 空间,拥有 4 个存储块(Bank),STM...
/* FSMC 配置 */FSMC_NSInitStructure.FSMC_Bank = ATK_MD0700_FSMC_BANK;// 使用bank第4区FSMC_NSInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;// 不复用数据地址FSMC_NSInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;// SRAMFSMC_NSInitStructure.FSMC_MemoryDataWidth = FSMC_Mem...
这两种接口类型是典型的LCD并行接口。接口信号分为:数据信号和控制信号。 数据信号支持8,9,16,18,24位等。 控制信号用来区分读、写及区分是向LCD寻址命令寄存器还是写LCDRAM数据。 控制信号定义如下: 图4 8080接口: 6800接口: 2.FSMC的LCD接口信号 图5 通过图5,可以看到FSMC提供了LCD驱动所需的全部信号。 片选...
而FSMC写地址1的时候,A0将会变为1,对TFTLCD来说,就是写数据了。这样,就把数据和命令区分开了,他们其实就是对应SRAM操作的两个连续地址。当然RS也可以接在其他地址线上。 因此,可以把TFTLCD当成一个SRAM来用,只不过这个SRAM有2个地址,这就是FSMC可以驱动LCD的原理。 02 标准8080接口 8080总线又叫Intel总线,大...
01、使用FSMC驱动LCD 关于FSMC,把数据写入相应的地址,FSMC就会把地址从FSMC_A出去,写入的数据会会从FSMC_D发出去。至于片选等信号线都是自动的。读的话,直接读相应的地址,就会拿到改地址上的数据。 FSMC驱动外部SRAM时,外部SRAM的控制一般有: 地址线(如A0~A25) ...
FSMC配置 开发板上 TFT-LCD 的原理图如下: 通过原理图可以看出: LCD D0-D15:使用了16bit:FSMC D0 - FSMC D15; LCD_RS:使用FSMC A6来控制向LCD写入数据还是命令(0-命令,1-数据); LCD_BL:背光控制,对应PB5; LCD_CS:LCD片选信号,FMC_NE4,表示使用Bank1的Bank4子区域 LCD_WR :LCD写使能,FSMC_NWE;...
STM32的FSMC存储块1 支持的异步突发访问模式包括:模式1、模式A~D等多种时序模型,驱动SRAM时一般使用模式1或者模式 A,这里我们使用模式A来驱动LCD(当SRAM用),其他模式说明详见:STM32中文参考手册-FSMC章节。 模式A读时序图 模式A写时序图 七、FSMC简介-寄存器介绍: ...
一、LCD驱动接口配置 1. 在STM32的标准外设库中,FSMC的配置函数位于STM32F10x_stdperiph_driver库的stm32f10x_fsmc.c和stm32f10x_fsmc.h文件中。通过这些函数,可以配置FSMC接口的参数,以使它能够连接和驱动LCD。 2.首先,需要配置FSMC的时钟预分频值。根据LCD的要求以及系统时钟频率,选择适当的预分频值。这可以...
第一个图:这里的LCD->LCD_REG是一个地址(0x6c000007FE),这里的寄存器序号哦:是指LCD手册里定义的寄存器地址。只要我们往LCD->LDC_REG这个地址里写一个变量(地址)。因为LCD->LDC_REG这个地址是FSMC管辖的。所以这时候FSMC就要勇敢的站出来管了~FSMC会自己生成相应的时序,包括CS、WR、RD和IO方向都是由FSMC控制...
FSMC的初始化代码如下: FSMC的引脚配置 FSMC模式和时序配置: 到此,FSMC的初始化就搞定了,后边就可以通过内存地址直接控制LCD了。这里有几个需要注意的点,下面来详细说说。 第一, 存储基地址 bank1的基地址是0x60000000,不同的子bank地址不同,通过HADDR[27:26]这两位的值确定。我们选择了第四个,这两位是11,所...