W25QXX 扇区擦除起始地址必须是4096的整数倍吗?

2020-01-07 19:26发布

如题~~

附:

/**
* @brief  擦除FLASH扇区
* @param  SectorAddr:要擦除的扇区地址
* @retval 无
*/
void SPI_FLASH_SectorErase(u32 SectorAddr)
{
    /* 发送FLASH写使能命令 */
    SPI_FLASH_WriteEnable();
    SPI_FLASH_WaitForWriteEnd();
    /* 擦除扇区 */
    /* 选择FLASH: CS低电平 */
    SPI_FLASH_CS_LOW();
    /* 发送扇区擦除指令*/
    SPI_FLASH_SendByte(W25X_SectorErase);
    /*发送擦除扇区地址的高位*/
    SPI_FLASH_SendByte((SectorAddr & 0xFF0000) >> 16);
    /* 发送擦除扇区地址的中位 */
    SPI_FLASH_SendByte((SectorAddr & 0xFF00) >> 8);
    /* 发送擦除扇区地址的低位 */
    SPI_FLASH_SendByte(SectorAddr & 0xFF);
    /* 停止信号 FLASH: CS 高电平 */
    SPI_FLASH_CS_HIGH();
    /* 等待擦除完毕*/
    SPI_FLASH_WaitForWriteEnd();
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
wx-ta
1楼-- · 2020-01-08 11:36
貌似擦除的时候,spi falsh的内部逻辑根本不会关心你给定地址的低N位
jiaowoxiaolu
2楼-- · 2020-01-08 14:56
wye11083 发表于 2018-11-20 15:28
4500擦的是下一个扇区了。你边界都溢出了。

数学体育老师教的
kebaojun305
3楼-- · 2020-01-08 20:13
wx-ta 发表于 2018-11-20 16:51
貌似擦除的时候,spi falsh的内部逻辑根本不会关心你给定地址的低N位

对 应该就是这样的,擦除时 会忽略低位地址的。
擦鞋匠
4楼-- · 2020-01-09 00:47
这个我在w25x40上测试过:对当前扇区的起始地址、中间地址、结束地址进行擦除,都将擦除该扇区
arm
5楼-- · 2020-01-09 06:26
 精彩回答 2  元偷偷看……
zkmcu
6楼-- · 2020-01-09 08:09
真理在二楼

一周热门 更多>