[STM32C0] STM32G0系列的Flash操作有时会遇到写保护或权限问题

[复制链接]
2467|27
 楼主| 根特皇宫w 发表于 2024-9-30 04:41 | 显示全部楼层 |阅读模式
请问大家在使用STM32G0B1CBT6时,如何正确配置Flash的读写权限,避免遇到无法擦除或写入的问题?具体的步骤有哪些?
将爱藏于深海 发表于 2024-11-3 19:32 | 显示全部楼层
根据系统时钟频率,配置适当的Flash访问等待周期。这可以通过设置FLASH_ACR寄存器来完成
一只眠羊 发表于 2024-11-4 13:00 | 显示全部楼层
没遇到过写保护或者是权限问题
春日负喧 发表于 2024-11-4 14:00 | 显示全部楼层
其实这种问题可以用jlink,解除一下就好了
我吃小朋友 发表于 2024-11-4 15:00 | 显示全部楼层
话说,写保护是怎么形成的,是误操作导致的
她已醉 发表于 2024-11-4 16:00 | 显示全部楼层
在使用STM32G0B1CBT6微控制器时,正确配置Flash的读写权限是非常重要的,以避免遇到无法擦除或写入的问题
温室雏菊 发表于 2024-11-4 17:00 | 显示全部楼层
STM32G0B1CBT6的Flash存储器通常分为多个扇区(Sector),每个扇区的大小可能不同。在进行Flash操作之前,需要了解Flash的结构和扇区大小
未说出口的像你 发表于 2024-11-4 18:00 | 显示全部楼层
在进行Flash操作之前,需要配置Flash的访问权限。需要使能Flash访问时钟。在STM32G0系列中,通常使用RCC(Reset and Clock Control)模块来配置时钟
月亮一键变蓝 发表于 2024-11-4 20:00 | 显示全部楼层
在进行Flash擦除或写入操作之前,需要先解锁Flash。解锁Flash涉及到写入特定的解锁序列到FLASH_KEYR寄存器
在曼谷的春 发表于 2024-11-4 21:00 | 显示全部楼层
在写入数据之前,通常需要先擦除目标扇区。擦除操作可以通过设置FLASH_CR寄存器的相关位来完成
失物招領 发表于 2024-11-4 22:00 | 显示全部楼层
一般来说,在擦除完成后,可以开始写入数据。写入操作涉及到设置FLASH_CR寄存器的相关位,并将数据写入到目标地址
powerantone 发表于 2024-11-5 11:06 | 显示全部楼层
参考手册和文档
略略u 发表于 2024-11-14 23:04 来自手机 | 显示全部楼层
正确配置Flash的读写权限,避免遇到无法擦除或写入的问题
公羊子丹 发表于 2025-1-24 10:23 | 显示全部楼层
STM32G0的Flash操作前需要解锁Flash控制器,先写入KEY1和KEY2到FLASH->KEYR寄存器,这步没做的话,写操作会失败。
周半梅 发表于 2025-1-24 10:25 | 显示全部楼层
检查一下OB(Option Bytes)的配置,是不是开启了写保护(WRP)区域?如果有,就需要通过Option Bytes修改来解除写保护。
帛灿灿 发表于 2025-1-24 10:28 | 显示全部楼层
每次写Flash之前,记得检查Flash状态寄存器(SR),确认Flash不在忙(BSY)状态,否则写操作会被阻塞。
童雨竹 发表于 2025-1-24 10:30 | 显示全部楼层
STM32G0系列有电压保护机制,如果供电电压低于最低写入要求,Flash写入会失败,确认VDD稳定在2.7V以上。
万图 发表于 2025-1-24 10:32 | 显示全部楼层
如果是通过中断或者RTOS环境下操作Flash,记得关掉所有中断,防止冲突,因为Flash写操作需要独占总线。
Wordsworth 发表于 2025-1-24 10:34 | 显示全部楼层
擦除Flash时要按页擦除,不能直接写数据覆盖,要先执行擦除命令,否则可能会导致写入错误。
Bblythe 发表于 2025-1-24 10:35 | 显示全部楼层
如果你的代码跑在Flash中,不建议直接操作当前运行的区域,建议用Dual Bank模式分区,或者在RAM中运行Flash擦写代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

148

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部