FMC扩展IO是对地址0x60001000的32bit数据空间的0和1的操作。
GPIOA的ODR寄存器是对地址 0x40000000 + 0x18020000 + 0x14 空间的操作,但只能操作16个引脚。
使用总线的优势就在这里了,相当于在GPIOA到GPIOK的基础上,又扩展出GPIOL和GPIOM。
通过总线可以直接对地址空间进行操作。
然后我们再说为什么叫扩展IO,部分网友Get不到这个点,认为没有扩展出新的IO。32bit的FMC还是控制的32个IO啊。
以H7为例,GPIOA,GPIOB,GPIOC等等都是挂在AHB4总线上的,这个总线上还有很多其它外设,所有这些外设都是以地址映射的方式存在于4GB寻址空间的某个地址上。这样AHB4总线就可以直接访问控制每个外设,而每个地址都可以控制8bit,这样就可以控制4G * 8个bit,每个bit都是一个IO的话,我们就可以控制出这么多IO。这个就是总线控制。
然后再来看FMC扩展IO控制,他是对地址0x60001000的32bit数据空间的0和1的操作,也就是扩展出了32个IO
这么说,理解就简单很多了。 |