打印
[应用相关]

对IAR自带STM32读写SPI FLASH例程的疑惑

[复制链接]
3685|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a1z26|  楼主 | 2009-3-31 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查了一下手册,M25P64每页是256个字节,但在“spi flash.c”中定义如下:

/* Private typedef ----------------------------------------*/
#define SPI_FLASH_PageSize    0x1006

这是怎么回事?

另外,在“main.c”中定义

/* Private define ----------------------------------------*/
#define  FLASH_WriteAddress     0x700000

即 SPI_FLASH_BufferWrite 函数中传递的地址是32位的,那么在函数内部用到的临时变量也应该是32位的,但却被定义为8位:“u8”,如下图,这样怎么能得到正确的结果?
沙发
ST_ARM| | 2009-3-31 16:07 | 只看该作者

老兄,你先去看一下spi flash.c

/* Private typedef ----------------------------------------*/
#define SPI_FLASH_PageSize    0x100
那个文件里明明是0x100,怎么会是0x1006?

关于
  u8 NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0, temp = 0;

  Addr = WriteAddr % SPI_FLASH_PageSize;
  count = SPI_FLASH_PageSize - Addr;
  NumOfPage =  NumByteToWrite / SPI_FLASH_PageSize;
  NumOfSingle = NumByteToWrite % SPI_FLASH_PageSize;

我觉得你应该从头到尾仔细阅读M25P64的数据手册。

使用特权

评论回复
板凳
a1z26|  楼主 | 2009-3-31 19:23 | 只看该作者

3楼

确实是 0x1006 ,我看了一下文件日期,我确实没有修改过。

ST_ARM老兄的意思是,我对数据手册理解的不透彻?

使用特权

评论回复
地板
lixiaoxu2meng| | 2010-8-4 15:52 | 只看该作者
的确是

#define SPI_FLASH_PageSize    0x100

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

214

帖子

0

粉丝