打印

读取SPIFLASH时 地址问题

[复制链接]
1348|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

粉丝