[STM32F2]

STM32Flash内部Flash擦除失败

[复制链接]
4079|3
手机看帖
扫描二维码
随时随地手机跟帖
paulyuanjian|  楼主 | 2019-5-29 23:15 | 显示全部楼层 |阅读模式
擦除STM32F205的扇区4,
板子开始可以,第二天就一直不行。
打印Flash-SR寄存器,值为0X10 (WRP错误)
但是芯片并没设置写保护:
读取OB区内容如下:
OptionType :0x0f;  FLASH_OB_GetRDP:0xaa; FLASH_OB_GetWRP:0x00
代码如下:
HAL_StatusTypeDef flash_erase_4sectors()
{
        uint32_t SectorError = 0;
        HAL_StatusTypeDef status = HAL_ERROR ;
        FLASH_EraseInitTypeDef pEraseInit;       

        if(uID_sector<FLASH_SECTOR_4 || uID_sector>= FLASH_SECTOR_5 || voltage >VOLTAGE_ERASE_WW)               
                return HAL_ERROR;
               
                pEraseInit.TypeErase    = FLASH_TYPEERASE_SECTORS;
                pEraseInit.VoltageRange = FLASH_PSIZE_HALF_WORD;
                pEraseInit.Sector       = FLASH_SECTOR_4;
                pEraseInit.NbSectors    = 1;       
       
                HAL_FLASH_Unlock();       
                __disable_irq();        //

                __HAL_FLASH_CLEAR_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
                                                                                         FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR));

                status = HAL_FLASHEx_Erase(&pEraseInit, &SectorError);       
                       
                __enable_irq();                                 
                HAL_FLASH_Lock();
               
                return status;
       
}

使用特权

评论回复
香水城| | 2019-5-30 08:14 | 显示全部楼层
你可以用STLINK UTILITY工具链接后直观的查看下,有无被写保护的扇区。

使用特权

评论回复
磨砂| | 2019-6-18 11:33 | 显示全部楼层
供电电压稳定不

使用特权

评论回复
paulyuanjian|  楼主 | 2020-8-26 10:45 | 显示全部楼层
这个1年前遇到的事情,记得当时是option区关于读写保护的内容问题导致的。后来修改好了。

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝