OpenEdv-开源电子网

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

STM32H743内部FLASH一次只能写入512bit问题

[复制链接]

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
发表于 2022-4-15 10:38:01 | 显示全部楼层 |阅读模式
50金钱
如题,正在使用STM32H743内部FLASH保存参数,但是发现一次在一个扇区只能写入512bit,再多就写不进去了。程序是从原子例程里面拷贝过来的,我在原有例程上写入超过32个字符后,也是不能正常显示。调试和好久,没出来,不知道怎么解决。。。。我把图贴出来,给大家看看,有高手指点一下,谢谢啦!
QQ图片20220415102137.png QQ图片20220415102257.png QQ图片20220415102325.png QQ图片20220415102437.png

最佳答案

查看完整内容[请看2#楼]

问题解决,原因在于stm32h7xx_hal_flash.c文件下的FLASH_WaitForLastOperation函数,至于具体是函数里面的哪个地方有问题,还没具体深究,我拿别的版本hal库文件替换了这个函数,读写就正常了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
 楼主| 发表于 2022-4-15 10:38:02 | 显示全部楼层
正点原子 发表于 2022-4-19 00:01
另外,你試試printf出來,看看

问题解决,原因在于stm32h7xx_hal_flash.c文件下的FLASH_WaitForLastOperation函数,至于具体是函数里面的哪个地方有问题,还没具体深究,我拿别的版本hal库文件替换了这个函数,读写就正常了。
QQ图片20220420091007.png

QQ图片20220420085000.png
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2033
金钱
2033
注册时间
2021-7-17
在线时间
635 小时
发表于 2022-4-15 18:00:10 | 显示全部楼层
帮顶   
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
 楼主| 发表于 2022-4-15 19:36:29 | 显示全部楼层
自顶一下,我也百思不得其解,其姐啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-4-15 23:03:25 | 显示全部楼层
我们例程肯定是正常的,你直接用我们例程测试下
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
 楼主| 发表于 2022-4-16 12:12:18 | 显示全部楼层
正点原子 发表于 2022-4-15 23:03
我们例程肯定是正常的,你直接用我们例程测试下

我又测了一下,例子程序显示正常,操作也正常,但是为什么从debug的memory里读出的东西不对呢?还是百思不得其解啊 IMG_20220416_120516.jpg
8]KH]98N@YDY6C[TF]NPE}O.png
从图中看,还是只有64个字节,但是实际写入的是85字节,读出的也是85字节。
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
 楼主| 发表于 2022-4-17 08:16:55 | 显示全部楼层
正点原子 发表于 2022-4-15 23:03
我们例程肯定是正常的,你直接用我们例程测试下

针对5楼我自己的做的实验,现象矛盾的问题,我今天又做了个实验。方法是,先写入flash,然后没有立即读出,先给stm32h7断电,然后再读取,结果和debug时看到flash的结果是一样的,也就是说,确实只写入了64字节,读出也是64字节,证明了debug是对的。这也就说明了,我之前说的,H7的flash按照例程只能写入64字节。。。。。还是百思不得其解,其姐啊,卡主好几天了。。。求原子哥给个解决方法 IMG_20220417_081104.jpg
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
 楼主| 发表于 2022-4-17 21:29:34 | 显示全部楼层
今天中午又做了次实验,方法:先往FLASH写入数据,然后给单片机断电,再上电读取FLASH数据,和debug时看内部FLASH是一样的,即与楼上最后一图一样。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-4-17 23:17:16 | 显示全部楼层
直接从0X081D0000开始读看看
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2013-8-15
在线时间
60 小时
 楼主| 发表于 2022-4-18 08:40:52 | 显示全部楼层
正点原子 发表于 2022-4-17 23:17
直接从0X081D0000开始读看看

还是和上面描述的情况一样,如果不对单片机断电,先写入再读出,显示结果是对的。但是如果写入后断电再上电读出,显示结果和debug的结果一样
OQK%UOUZ_4@IA5X42)POI~9.png

IMG_20220418_083423.jpg
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-4-19 00:01:04 | 显示全部楼层
heyangfengyue 发表于 2022-4-18 08:40
还是和上面描述的情况一样,如果不对单片机断电,先写入再读出,显示结果是对的。但是如果写入后断电再上 ...

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-4-19 00:01:10 | 显示全部楼层
正点原子 发表于 2022-4-19 00:01
断电重启, 你不仿真,直接看结果,正常么?

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-4-21 23:12:22 | 显示全部楼层
heyangfengyue 发表于 2022-4-20 09:10
问题解决,原因在于stm32h7xx_hal_flash.c文件下的FLASH_WaitForLastOperation函数,至于具体是函数里面 ...

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

使用道具 举报

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2019-12-21
在线时间
20 小时
发表于 2024-10-11 20:26:41 | 显示全部楼层
感谢楼主,跟你遇到同样的问题,更换那个函数就正常了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 09:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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