打印
[STM32F1]

读写flash的注意事项

[复制链接]
楼主: jackcat
手机看帖
扫描二维码
随时随地手机跟帖
21
vivilyly| | 2024-8-17 10:18 | 只看该作者 回帖奖励 |倒序浏览
当STM32的FLASH被锁定时,任何尝试修改FLASH内容的操作都会被阻止,这是一种保护机制,防止意外或恶意的代码覆盖。

使用特权

评论回复
22
earlmax| | 2024-8-17 13:08 | 只看该作者
如果Flash当前处于锁定状态,则需要按照STM32的参考手册中描述的步骤来解锁Flash。这通常涉及向FLASH_KEYR寄存器写入特定的解锁密钥序列。

使用特权

评论回复
23
backlugin| | 2024-8-17 14:46 | 只看该作者
如果Flash是锁定状态,需要按照正确的解锁序列来解锁Flash。对于大多数STM32系列,这个序列通常涉及向特定的寄存器写入特定的值。例如,对于STM32F系列的微控制器,通常需要连续两次写入特定的密钥值到FLASH_KEYR寄存器。

使用特权

评论回复
24
狄克爱老虎油| | 2024-8-17 22:21 | 只看该作者
flash要先解锁

使用特权

评论回复
25
cashrwood| | 2024-8-17 23:03 | 只看该作者
在执行任何Flash写入或擦除操作之前,必须先解锁Flash。

使用特权

评论回复
26
claretttt| | 2024-8-18 12:16 | 只看该作者
这通常通过读取FLASH_CR(FLASH控制寄存器)的相关位来完成。如果这些位指示FLASH已经被锁定,那么执行解锁操作是安全的;如果FLASH已经是解锁状态,就没有必要再次执行解锁操作。

使用特权

评论回复
27
saservice| | 2024-8-18 17:29 | 只看该作者
在尝试解锁Flash之前,应该先检查Flash的当前状态。如果Flash已经是解锁状态,再次执行解锁操作可能会导致不可预测的结果,包括硬件错误(HardFault)。

使用特权

评论回复
28
nomomy| | 2024-8-18 21:42 | 只看该作者
直接对已经解锁的Flash执行解锁操作在大多数情况下可能不会立即导致问题,但为了避免潜在的错误和混淆,最佳实践是在每次需要执行Flash操作之前都检查并 解锁Flash。

使用特权

评论回复
29
51xlf| | 2024-8-19 08:27 | 只看该作者
STM32的FLASH解锁操作是为了允许对FLASH进行编程或擦除,这一操作通常是在FLASH被锁定状态下进行的。

使用特权

评论回复
30
febgxu| | 2024-8-19 10:51 | 只看该作者
在STM32中,可以通过读取特定的寄存器(通常是FLASH_CR寄存器中的LOCK位)来判断FLASH是否已被锁定。如果LOCK位显示FLASH已锁定,那么执行解锁操作是合理的。

使用特权

评论回复
31
sdCAD| | 2024-8-19 12:52 | 只看该作者
一旦Flash被解锁,就可以安全地执行擦除和编程操作了。

使用特权

评论回复
32
dspmana| | 2024-8-19 14:32 | 只看该作者
在某些情况下,对已解锁的FLASH执行解锁操作可能导致不可预料的行为,这可能会影响系统的稳定性和可靠性。

使用特权

评论回复
33
vivilyly| | 2024-8-19 18:19 | 只看该作者
一旦Flash被成功解锁,就可以执行所需的Flash操作,如编程(写入)或擦除。

使用特权

评论回复
34
lzbf| | 2024-8-20 08:12 | 只看该作者
检查LOCK位的值以确定FLASH是否已锁定。

使用特权

评论回复
35
dreamCar| | 2024-8-20 09:38 | 只看该作者
如果闪光灯已经解锁,如果我仍然解锁会发生什么

使用特权

评论回复
36
lzmm| | 2024-8-20 09:55 | 只看该作者
如果在解锁过程中遇到错误,比如硬件错误(HardFault),应该有相应的错误处理机制来处理这种情况。这可能包括重试解锁序列或者将错误信息报告给用户。

使用特权

评论回复
37
youtome| | 2024-8-20 14:53 | 只看该作者
在完成Flash操作后,为了增强安全性,可以选择性地重新锁定Flash。这样可以在不使用时保护Flash内容不被修改。

使用特权

评论回复
38
linfelix| | 2024-8-20 17:33 | 只看该作者
在使用STM32微控制器时,正确地管理Flash的锁定状态是非常重要的。Flash存储器通常有一个锁定状态,用于保护存储在其中的程序代码不被意外修改。

使用特权

评论回复
39
IntelCore| | 2024-8-20 20:56 | 只看该作者
在执行任何闪存写入或擦除操作之前,必须解锁闪存。

使用特权

评论回复
40
febgxu| | 2024-8-20 22:34 | 只看该作者
STM32的解锁操作是幂等的,也就是说,无论执行多少次解锁操作,结果都是一样的。这意味着即使对一个已经解锁的FLASH再次执行解锁操作,也不会有任何副作用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则