typedef struct{uint32_t FSMC_AddressSetupTime;//地址建立保持时间uint32_t FSMC_AddressHoldTime;//地址保持时间uint32_t FSMC_DataSetupTime;//数据建立时间uint32_t FSMC_BusTurnAroundDuration;//总线周转期uint32_t FSMC_CLKDivision;//分频系数uint32_t FSMC_DataLatency;//uint32_t FSMC_AccessMode;//...
首先,你得确保GPIO AHB时钟是开启的。这个时钟是FSMC操作的基础。 第二步:引用配置GPIO引脚的函数 接下来,引用“配置GPIO引脚”的函数。这个函数会帮你设置好GPIO的各种参数。 第三步:配置FSMC控制寄存器 这一步有点关键,你需要设置以下几个寄存器: 存储器块使能:开启FSMC的存储器功能。 禁止访问闪存:确保你不会...
void HAL_SRAM_MspInit(SRAM_HandleTypeDef* sramHandle) { HAL_FSMC_MspInit(); } static void HAL_FSMC_MspInit(void) { //时钟配置 //引脚配置 } 1. 2. 3. 4. 5. 6. 7. 8. 9. B、配置FSMC外设时钟:__HAL_RCC_FSMC_CLK_ENABLE(); C、引脚配置 然后就可以进行读写操作了 HAL_StatusTypeDef H...
FSMC_NE[4:1]信号线就分别对应图中的 FSMC bank1NOR/PSRAM4到FSMC bank1NOR/PSRAM1。 当STM32访问0x6800 0000—0x6BFF FFFF址空间时,会访问到Bank1的第3小块区域:FSMC bank1NOR/PSRAM3,相应的FSMC_NE[3]信号线会输出控制信号(即片选信号),如果这个时候FSMC_NE[3]处刚好接上IS62WV51216的CS端,FSMC_N...
第一个角度理解STM32有FSMC(其实其他芯片基本都有类似的总线功能),FSMC的好处就是你一旦设置好之后,WR(写)、RD(读)、DB0-DB15这些控制线和数据线, 都是FSMC自动控制的。打个比方,当你在程序中写到: *(volatile unsigned short int *)(0x60000000)=val; ...
FSMC 的时钟来至时钟控制器HCLK,在前面我们讲解“存储器与寄存器”时,我们知道,AHB 区域内包含 FSMC 模块,所以如果要使用 FSMC,必须使能 AHB 总线时钟。 (2)标号 2:AHB 接口 CPU 和其它 AHB 总线主设备可通过该 AHB 从设备接口访问外部静态存储 器。FSMC 可通过一个寄存器组进行配置。有关 NOR Flash/PSRAM ...
(1)AHB接口(包括FSMC配置寄存器) (2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一个PSRAM的里面只有2个16位的存储空间,一个是DATA RAM 一个是CMD RAM) (3)NAND闪存和PC卡控制器 (4)外部设备接口 注:FSMC可以请求AHB进行数据宽度的操作。如果AHB操作的数据宽度大于外部设备(NOR或NAND或LCD)的宽度,此时FSMC...
1.FSMC配置代码 FSMC寄存器配置可参考STM32中文参考手册第19章灵活静态存储器控制器(FSMC)。 2.LCD显示图片和显示汉字示例 (1) 读写数据 根据LCD硬件接口时序8080,要想实现对LCD屏数据显示则需要完成LCD写数据和写寄存器,LCD接在FSMC_Blank1的region4上,通过地址线FSMC_A10作为数据命令选择线,通过FSMC地址映射...
//以下是配置FSMC_BCR1寄存器的各个位 FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; //非复用MUXEN:bit1 FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_PSRAM; //MTYP-bit3:2存储器类型 ...
可以打开cubeIDE分别选择两块芯片比如407和429实际配置一下这个接口可以看到差异: 407-FSMC配置 429-FMC配置 可以看到FMC接口支持比FSMC要多很多。 FSMC(FMC)主要用途: 扩大系统的RAM空间,系统运行内存 单纯的扩大RAM,运行更大的程序 特别针对GUI需求,比如LCD刷新(大屏幕80并口) 扩大系统的Flash空间,系统数据存储 数...