野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12910|回复: 3

读写spi flah例程,引发的问题

[复制链接]
发表于 2017-2-6 15:38:02 | 显示全部楼层 |阅读模式
在F429固件库例程spi-读写串行flash中,对读写的地址特别的设置sector之间的边界值,例如
#define  FLASH_WriteAddress     0x00ffb    //sector0 addr: 0x00000--0x00FFF
uint8_t Tx_Buffer[] = “abcd012345”
那么经过擦,写,读,后读到的数据和写入的数据不一致。
所以有以下疑问:
1.SPI_FLASH_SectorErase(u32 SectorAddr)函数,是仅仅擦出形参地址SectorAddr 到当前sector 的最后地址?
     还是从当前SectorAddr起的4K空间?
2.即使改变SPI_FLASH_BufferRead ( )的形参ReadAddr 为 0x01000,读到的数据不是"12345",是不是由于没有擦出成功?
     但是读地址0x00ffb开始的5个数据是正确的。


回复

使用道具 举报

发表于 2017-2-6 16:42:27 | 显示全部楼层
1.擦除SectorAddr起的4K空间,要求输入参数SectorAddr为4K的整数倍
2.擦除了之后再写入才能正常读写
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-6 17:15:15 | 显示全部楼层
SPI_FLASH_SectorErase(u32 SectorAddr)函数, 要求输入参数SectorAddr为4K的整数倍,那如果要在sector边界之间(例如sector0底部和sector1顶部)写数据的话,岂不是要擦出两个sector?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-6 18:43:33 来自手机 | 显示全部楼层
理解了,现在出现一个奇怪问题,一开始能读写数据,多操作几次读写,现在读到任何数据都是0xff,即使读jedec,也只是0xff了,这是flash坏了么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-14 17:55 , Processed in 0.027087 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表