读取SPIFLASH时 地址问题

[复制链接]
1696|0
 楼主| czs120119 发表于 2012-9-15 21:23 | 显示全部楼层 |阅读模式
本人将字库下载到了SPIFLASH             型号AT45DB04,容量:512K      现在根据汉字的内码   算出地址Address           根据2312标准:

           Address =( (MSB - 0xA1) * 94 + (LSB - 0xA1))*32+ BaseAdd;
           ReadFlashData((Address , DataBuf0, 32);
这样为什么得不到准确的数据?

做以下改变却可以,这是为什么?
            Address =( (MSB - 0xA1) * 94 + (LSB - 0xA1))*32+ BaseAdd;             iFlashPageNo = (INT32U)(Address / 264);         (264为SPIFLASH每页的BYTES数)
            iOffsetAddr = Address-iFlashPageNo*264;
            ReadFlashData((iFlashPageNo<<9)+iOffsetAddr, DataBuf0, 32);


为什么iFlashPageNo<<9)+iOffsetAddr才是地址    而不是直接是Address       iFlashPageNo<<9,为什么是左移9位?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部