在学习正点原子FSMC访问外部存储器时遇到的一个地址偏移问题,在这里记录一下
HADDR:来自STM32内部AHB总线上地址线。
FSMC_A[25:0]:外部存储器接口信号上的地址总线,连接TFT的数据/命令选择RS端,只用到了FSMC_A[0]。
FSMC_D[15:0]:双向数据总线,FSMC-D[0,15] -----LCD-DB[0,15]
FSMC的连接顺序是:HADDR[25:0]--->FSMC_A[25:0]--->外部的存储器
(1)当存储数据为8位时,地址各位对应FSMC_A[25:0],数据位对应FSMC_D[7:0],
FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b
(1)当存储数据为8位时,地址各位对应FSMC_A[25:1],数据位对应FSMC_D[15:0],
FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b
(2) 当舍弃HADDR[0]时,地址会向右偏移一位。此时访问u8的6c00 0000和6c00 0000相当于访问u16的0000 0000
(1)当存储数据为8位时,地址各位对应FSMC_A[25:2],数据位对应FSMC_D[32:0],
FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_32b
(2) 当舍弃HADDR[1:0]时,地址会向右偏移两位。此时访问U8的6c00 0000和6c00 0000相当于访问U32的0000 0000