OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3003|回复: 7

stm32的flash连续扇区擦除

[复制链接]

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-12-9
在线时间
20 小时
发表于 2020-1-7 12:02:50 | 显示全部楼层 |阅读模式
1金钱
对256K stm32的flash自己写个循环对连续的扇区进行擦除,擦除到第32个扇区之后,后面的扇区无论调用多少次函数都无法擦除,,但是用原子哥的先读后擦能够擦掉。
u8 MFlash_EraseSectors(void)
{
        u8 secpos;  
        u8 i;  
        volatile FLASH_Status FLASHStatus = FLASH_COMPLETE;       
        secpos=96;
        FLASH_Unlock();                                                //解锁
        for(i=0;(i<secpos)&&(FLASHStatus == FLASH_COMPLETE);i++)
        {       
                FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);   
                FLASHStatus=FLASH_ErasePage(i*STM_SECTOR_SIZE+STM32_FLASH_O_BASE);//擦除这个扇区                          
        }
        FLASH_Lock();//上锁
        return 1;
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-1-8 02:18:17 | 显示全部楼层
直接一开始就擦除第33个扇区OK 么?
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-12-9
在线时间
20 小时
 楼主| 发表于 2020-1-8 11:24:46 | 显示全部楼层
正点原子 发表于 2020-1-8 02:18
直接一开始就擦除第33个扇区OK 么?

写之前单独擦除某个扇区是ok的,就是连续擦除的时候,64K那个地址往后都会擦除失败
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-12-9
在线时间
20 小时
 楼主| 发表于 2020-1-8 11:26:46 | 显示全部楼层
正点原子 发表于 2020-1-8 02:18
直接一开始就擦除第33个扇区OK 么?

仿真器跟过擦除的函数都正常走了,擦函数走完马上读是FFFF,但是在这个函数调用的外面读就没有被擦掉
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-1-9 02:59:36 | 显示全部楼层
没有星期五 发表于 2020-1-8 11:26
仿真器跟过擦除的函数都正常走了,擦函数走完马上读是FFFF,但是在这个函数调用的外面读就没有被擦掉

等待擦除完成,貌似没看到你这个等待。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

294

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1790
金钱
1790
注册时间
2018-3-26
在线时间
294 小时
发表于 2020-1-9 09:32:50 | 显示全部楼层
擦除扇区是费时操作,需要等待操作完成
茵茵猪头
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-12-9
在线时间
20 小时
 楼主| 发表于 2020-1-9 09:56:04 | 显示全部楼层
正点原子 发表于 2020-1-9 02:59
等待擦除完成,貌似没看到你这个等待。

等待擦除在封装好的那个擦除函数里面不是就有吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-1-10 01:54:50 | 显示全部楼层
没有星期五 发表于 2020-1-9 09:56
等待擦除在封装好的那个擦除函数里面不是就有吗

仿真看看吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 22:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表