【STM32】FSMC接口的复用和非复用

问题背景

在阅读《零死角玩转STM32---F103指南者》,以及《STM32F10x-中文参考手册》关于FSMC一章节的时候,对于在控制NOR/SRAM的时候使用到的引脚,在提到NOR器件的时候提到了地址复用和非复用接口,一时间没明白是什么东西。

结论

非复用模式:16位数据线及26位地址线分开始用。推荐在144脚及以上的STM32产品上使用该模式。

复用模式低16位数据/地址线复用。在该模式下,推荐使用地址锁存器 以区分数据与地址。

若不使用锁存器:当NADV为低时,ADx(x=0...15)上出现地址信号Ax,当NADV变高时,ADx上出现数据信号Dx。若使用锁存器:可同时在ADx上得到Ax和Dx。

复用模式

1、寄存器的配置,首先注意使能地址数据复用,其次要存储器类FSMC_MemoryType_NOR,否则出现不了NADV信号。

FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;

FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;

2、注意GPIO复用功能的使能,以及时钟使能。

3、地址总线。在16位模式访问时,访问地址的25...0位必须先左移一位.。才能正确输出地址信号,原因是,STM32会将地址右移一位后在输出。如果输出前不左移,会导致输出地址错误,比如当我们软件访问地址6000 0005H这个地址时,实际访问的地址是6000 0002H。为何右移一位?看中文数据手册327页。如下

相关推荐
QK_0018 小时前
主流嵌入式MCU GUI框架完整介绍
单片机·嵌入式硬件
国产电子元器件18 小时前
2026年电流传感器选型指南:开环霍尔、闭环霍尔、TMR如何选择?
单片机·嵌入式硬件
飞霄不推销18 小时前
ROS2--Tiwst数据类型转换到帧类型发给STM32
stm32·单片机·嵌入式硬件
阿泽·黑核18 小时前
06 keyflow 多平台移植指南:STM32/51/ESP32/Linux
linux·stm32·嵌入式硬件
AI+程序员在路上18 小时前
CSP、PP、PV、HM 在 CiA402 标准下的差异解析
linux·c语言·开发语言·嵌入式硬件
DLGXY18 小时前
STM32 项目实战:温湿度 / 光敏 / 蓝牙 + 风扇 / LED 双闭环控制(二)
stm32·单片机·嵌入式硬件
省四收割者18 小时前
从硬件中断到分布式协程:全景解构高并发机制与 C / Golang 的巅峰对决
c++·分布式·嵌入式硬件·golang
崇山峻岭之间18 小时前
单片机BLDC PID控制实验
单片机·嵌入式硬件
DLGXY19 小时前
STM32 项目实战:温湿度 / 光敏 / 蓝牙 + 风扇 / LED 双闭环控制(一)
stm32·单片机·嵌入式硬件