请选择 进入手机版 | 继续访问电脑版

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

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;
}

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

举报

9个回答
kqh1120 回答时间: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
没有昵称不可以 回答时间:2020-7-23 15:31:16
请问怎么 解决的呢?
ju+(春) 回答时间:2021-4-28 22:37:33
楼主最后解决了吗?我也遇到这样的问题

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版