OpenEdv-开源电子网

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

关于STM32F103 实验34 FLASH模拟EEPROM实验

[复制链接]

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-8-14
在线时间
17 小时
发表于 2021-8-31 09:39:12 | 显示全部楼层 |阅读模式
发现了一个bug,可能是写错了
if(i<secremain)//需要擦除
                {
                        FLASH_ErasePage(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE);//擦除这个扇区
                        for(i=0;i<NumToWrite;i++)//复制
                        {
                                STMFLASH_BUF[i+secoff]=pBuffer[i];          
                        }

写入的个数写错了,希望改一下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-8-14
在线时间
17 小时
 楼主| 发表于 2021-8-31 10:27:40 | 显示全部楼层
本帖最后由 我是菜鸟985 于 2021-8-31 10:28 编辑

是这样的,在每次擦除后,如果连续擦除就回报错,所以需要添加一行代码,这样才算完整
if(i<secremain)//需要擦除
                {
                        
                        FLASH_ErasePage(secpos*STM_SECTOR_SIZE+STM32_FLASH_BASE);//擦除这个扇区                        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//清除所有标志,以便写入
回复 支持 反对

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-8-14
在线时间
17 小时
 楼主| 发表于 2021-8-31 13:41:16 | 显示全部楼层
本帖最后由 我是菜鸟985 于 2021-9-1 14:51 编辑

再加一句,如果在写入时,读取的数据是0XFF,如果不擦除,是无法写入的,谨记
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2021-10-15
在线时间
13 小时
发表于 2021-12-29 16:08:01 | 显示全部楼层
我是菜鸟985 发表于 2021-8-31 10:27
是这样的,在每次擦除后,如果连续擦除就回报错,所以需要添加一行代码,这样才算完整
if(i

没有必要,而且这里没有连续擦除会报错的标志位。看一下库函数的代码吧
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 22:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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