你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 flash dual bank擦除失败?

[复制链接]
winamp123 提问时间:2015-3-26 20:28 /
本帖最后由 winamp123 于 2015-3-27 12:55 编辑

429 FLASH 为1M, 我想配置为dual bank, 每块512M.  设置DB1M成功。现在想擦除dual bank 15 sector, 即
#define ADDR_FLASH_SECTOR_15     ((uint32_t)0x0808C000) 。结果擦除不了。

可是如果不用dual bank, 单独擦除 8 sector 128K(含dual bank 15 sector 16K), 结果却正常。
请问谁用过dual bank。 这个是什么原因?调用函数如下:

uint32_t FLASH_EraseSector(uint32_t sectorAdd)
{
FLASH_EraseInitTypeDef EraseInitStruct;
uint32_t errSector = RET_OK;

HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();

/* Fill EraseInit structure*/
EraseInitStruct.TypeErase = TYPEERASE_SECTORS;
EraseInitStruct.VoltageRange = VOLTAGE_RANGE_3;
EraseInitStruct.Sector = FLASH_GetSector(sectorAdd);
EraseInitStruct.NbSectors = 1;
HAL_FLASHEx_Erase(&EraseInitStruct, &errSector);

HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
return errSector;
}

收藏 评论8 发布时间:2015-3-26 20:28

举报

8个回答
zfz0122 回答时间:2015-3-27 00:07:13
帮你顶一下 14.gif
nocoyou 回答时间:2015-3-27 06:51:55
帮顶帮顶
木木鱼 回答时间:2015-3-27 08:19:01
帮忙顶一下
stary666 回答时间:2015-3-27 09:55:48
不懂帮顶
回答时间:2015-3-27 10:53:13
没有查到FLASH_OPTCR_DB1M的定义,FLASH_OPTCR中也没查到这个选项。
楼主截图发一下这个寄存器的说明。
winamp123 回答时间:2015-3-27 12:56:52
安 发表于 2015-3-27 10:53
没有查到FLASH_OPTCR_DB1M的定义,FLASH_OPTCR中也没查到这个选项。
楼主截图发一下这个寄存器的说明。 ...

谢谢回复。DB1M现在可以烧写,却不能擦除。我更新了帖子。
zhangdaijin 回答时间:2015-3-27 13:25:41
4290 回答时间:2020-7-23 15:31:16
请问怎么 解决的呢?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版