FSMC中数据宽度为16位时,为什么HADDR[0]不接?

 之前对这个问题不太理解,现在通过百度,似乎理解了,记录一下,以防忘记。

参考手册中写了,HADDR是字节地址,如果访问外部存储器是字节型,也就是八位,那么通过地址线访问时,直接可以一次性接收这个数据。

那么如果外部存储器是16位时,通过地址线访问时,就需要分两次,将这16位数据,一次8位的接收过来.

也就是说

             0b00 0000 0000 0000 0000 0000 0000 访问存储器第0个地址的第1个字节

             0b00 0000 0000 0000 0000 0000 0001 访问存储器第0个地址的第2个字节

             0b00 0000 0000 0000 0000 0000 0010 访问存储器第1个地址的第1个字节

             0b00 0000 0000 0000 0000 0000 0011 访问存储器第1个地址的第2个字节

             0b00 0000 0000 0000 0000 0000 0100 访问存储器第2个地址的第1个字节

             0b00 0000 0000 0000 0000 0000 0101 访问存储器第2个地址的第2个字节

             0b00 0000 0000 0000 0000 0000 0110 访问存储器第3个地址的第1个字节

             0b00 0000 0000 0000 0000 0000 0111 访问存储器第3个地址的第2个字节

以此类推

此时如果把第0位去掉,我们就可以通过剩下来的这25位来判断访问的是存储器的第几个地址。

通过HADDR[1]是0还是1却正好能够区别外部存储器上的0地址和1地址,而通过HADDR[2]和HADDR[1]是10还是11又正好能够区别外部存储器上的2地址和3地址

HADDR[0]不接到FSMC上,CPU依然是逐次增一地去访问外部存储器,也还是发出一个地址读回一个字节,但是CPU每发两个地址都会停留在外部存储器的同一个地址上,所以最终,同一个地址上的两个字节都会被CPU读取

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值