关于STM32主存储块擦除编程操作的一些疑问

来源:本站
导读:目前正在解读《关于STM32主存储块擦除编程操作的一些疑问》的相关信息,《关于STM32主存储块擦除编程操作的一些疑问》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于STM32主存储块擦除编程操作的一些疑问》的详细说明。
简介:本文介绍了STM32Flash中主存储块擦除编程操作遇到的一些问题和解决方法。

1.为什么每次都要检查BSY位是否为0?

因为BSY位为1时,不能对任何FPEC寄存器执行写操作,所以必须要等BSY位为0时,才能执行闪存操作。

2.如果没有擦除就进行编程,会出现什么结果?

STM32在执行编程操作前,会先检查要编程的地址是否被擦除,如果没有,则不进行编程,并置FLASH_SR寄存器的PGERR位为1。唯一例外的是,当要编程的数据为0X0000时,即使未擦除,也会进行编程,因为0X0000即使擦除也可以正确编程。

3.为什么操作后要读出数据并验证?

STM32在某些特殊情况下(例如FPEC被锁住),可能根本就没有执行所要的操作,仅通过寄存器无法判断操作是否成功。所以,保险起见,操作后都要读出所有数据检查。

4.等待BSY位为1的时间以多少为合适?

请参考STM32固件库中的数据。

5.FLASH编程手册上说进行闪存操作(擦除或编程)时,必须打开内部的RC振荡器(HSI),是不是一定要用HIS进行闪存的擦除及编程操作?

对于这点,我的理解是,进行闪存操作时,必须要保证HIS没有被关闭,但是操作时的系统仍然可以是HSE时钟。STM32复位后,HIS默认是开的,只要你不为了低功耗去主动关闭它,则用什么时钟都可以进行闪存操作的。我所编的程序也验证了这一点。

提醒:《关于STM32主存储块擦除编程操作的一些疑问》最后刷新时间 2024-03-14 01:08:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于STM32主存储块擦除编程操作的一些疑问》该内容的真实性请自行鉴别。