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

关于STM32F103VGT6 FLASH闪存擦除库函数异常

[复制链接]
收到 提问时间:2017-7-5 09:06 /
本帖最后由 xsnbzj 于 2017-7-5 15:28 编辑

这两天,我手上拿到了一颗STM32F103VGT6的芯片,芯片的FLASH容量是1M字节。

在做调用STM32 闪存擦除指令时发现一个问题:
      擦到0x808 0000时,会自动跳转到0x800 0000地址,觉得很奇怪。

也看了STM32的FLASH闪存编程手册,没有提到1024K大容量的信息,最多是512K的。

验证代码:
void EraseFPoApp(void)
{
    u32 u32PageAdd=0;
    FLASH_Unlock();
    u32PageAdd = 0x8064000;
    FLASH_ErasePage(u32PageAdd);
    FLASH_Lock();
} 没问题,可以擦除这页的内容。

但是:
void EraseFPoApp(void)
{
    u32 u32PageAdd=0;
    FLASH_Unlock();
    u32PageAdd = 0x8080000;
    FLASH_ErasePage(u32PageAdd);
    FLASH_Lock();
} 擦除的确是0x800 0000的内容。不知道为什么。

不知道有没有大神遇到过这类情况。还是本身,STM32就有针对VGT6的这个BUG存在。
收藏 评论7 发布时间:2017-7-5 09:06

举报

7个回答
斜阳 回答时间:2017-7-5 10:57:02
帮顶                        
收到 回答时间:2017-7-5 14:18:55
感觉STM32F103VG有这个漏洞
收到 回答时间:2017-7-6 13:50:57
顶~~台主求助
废鱼 回答时间:2017-7-6 17:01:30
楼主,你下载最新的固件库吧。里面描述了大于512K时,如何操作,如下:
STM32F10x_XL devices feature up to 1 Mbyte with dual bank architecture for read-while-write (RWW) capability:
    - bank1: fixed size of 512 Kbytes (256 pages of 2Kbytes each)
    - bank2: up to 512 Kbytes (up to 256 pages of 2Kbytes each)
xmshao 回答时间:2017-7-6 17:19:25
对于STM32F1系列的1MB flash芯片,是分两个bank的。每个BANK最大512KB.

你确认下你的代码,估计你给的是BANK2的地址,操作的却是BANK1的 FLASH寄存器,二者是
不一样的。

标准库函数里用到一个宏STM32F10X_XL来区分不同的函数实现。
收到 回答时间:2017-7-6 18:42:25
谢谢楼上两位,一语点破,确实我的固件库太老了
收到 回答时间:2017-7-11 19:12:26
问题已经解决,如上面两位版主说的,我在官网下载最新的Library就可以了。
但是在调试时发现一个奇怪的问题,每次第一次进入擦除指令时,总是不能准确的擦除第一页,直到第二次进入才能擦除。
比如擦除的 起始页地址是0x8005000,但是8005000这页是不能擦除的,后面的页都可以一次擦除。

虽然可以有其他方法避免,但是觉得不应该出现这种现象。很奇怪,怎么会出现这种情况,引用不带XL的
就没有问题。

验证代码:
void ErasePageApp(void)
{
    FLASH_Unlock();
    u32PageAddree = 0x8005000+ulPa;
    FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
    FLASH_ErasePage(u32PageAddree);
    ulPa +=(u32)(2*1024);
    FLASH_Lock();
}

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版