硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2102|回复: 6
收起左侧

[Flash] STM32H747的FLASH操作第二包不正常

[复制链接]

12

主题

14

回帖

50

积分

初级会员

积分
50
发表于 2022-7-18 16:02:02 | 显示全部楼层 |阅读模式
大佬您好!我用您的743的FLASH代码。
1.我的文件数据量比较庞大,是分包写入FLASH的,每一个包大小是 12976个字节
2.我的第一包可以写入成功,第二包写入时候程序  status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, bank);返回错误,最后发现是这个错误PGSERR2存储区 2 编程顺序错误标志 (Bank 2 programming sequence error flag)
我想问下是怎么回事呢?

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2022-7-19 00:32:26 | 显示全部楼层
操作H7的Flash主要是两个问题
1、一定要使用最新版的HAL库。
2、一定要是32字节整数倍去编程,且地址要32字节对齐。
回复

使用道具 举报

12

主题

14

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2022-7-19 09:56:33 | 显示全部楼层
eric2013 发表于 2022-7-19 00:32
操作H7的Flash主要是两个问题
1、一定要使用最新版的HAL库。
2、一定要是32字节整数倍去编程,且地址要32 ...

多谢大佬,已经解决
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-6-12 15:44:29 | 显示全部楼层
大佬,我也遇到这个问题了,而且发现在调试时在HAL_FLASH_Program()前面打断点可以正确写入,一旦取消断点再执行就会返回这个错误FLASH_FLAG_PGSERR_BANK1,请问这是什么原因呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-13 09:50:27 | 显示全部楼层
QTXY 发表于 2024-6-12 15:44
大佬,我也遇到这个问题了,而且发现在调试时在HAL_FLASH_Program()前面打断点可以正确写入,一旦取消断点 ...

注意一点,一定要使用最新版的HAL库,之前的版本有bug。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-9-14 16:04:49 | 显示全部楼层
eric2013 发表于 2022-7-19 00:32
操作H7的Flash主要是两个问题
1、一定要使用最新版的HAL库。
2、一定要是32字节整数倍去编程,且地址要32 ...

硬汉哥,对H7的FLASH写入数据必须一次32字节吗?不能单独写8位、16位这样的?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-9-15 09:02:33 | 显示全部楼层
外星嵌入式 发表于 2024-9-14 16:04
硬汉哥,对H7的FLASH写入数据必须一次32字节吗?不能单独写8位、16位这样的?

是的,不足补值

STM32H7内部Flash的写操作地址必须是32字节对齐,写入的数据量也必须是32字节整数倍
https://forum.anfulai.cn/forum.p ... 6659&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 18:53 , Processed in 0.044020 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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