[应用相关] 对IAR自带STM32读写SPI FLASH例程的疑惑

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

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