首页 » 科学 » STM32L0芯片FLASH编程示例及提醒_擦除_代码

STM32L0芯片FLASH编程示例及提醒_擦除_代码

乖囧猫 2024-11-28 13:25:12 0

扫一扫用手机浏览

文章目录 [+]

一样平常来讲,FLASH编程紧张包括擦除、代码编程、Option字修正操作,关于Option编程下面不做先容。
STM32L0芯片的擦除除了支持全片擦除外,再便是支持页擦除,每页的大小为128Bytes,即32个字。
编程可以按字或按半页【64Bytes】编程。
单页擦除、单字编程以及半页编程的韶光都是一样的,大概3.2ms旁边,这点在芯片数据手册上也明确出来了。

这里提醒两点。
第一点,在做擦除或编程时,要把稳地址对齐的问题,页擦除时地址要128字节对齐,字编程把稳4字节对齐,半页编程时把稳64字节对齐。
还有一点便是做半页编程时,半页编程的实行代码要放到RAM里进行,这点手册也强调了。

STM32L0芯片FLASH编程示例及提醒_擦除_代码 STM32L0芯片FLASH编程示例及提醒_擦除_代码 科学

下面演示字编程、页编程、页擦除的操作。
这里我先以字编程模式写5个字,然后以半页编程模式对5个半页进行FLASH编程,并记录二者所花的韶光,看看字编程韶光跟半页编程的是否同等。
其余,在完成5个半页编程之后,又进行了页擦除操作,擦除刚才已编程的5个半页中的1页,即末了应只剩下3个半页的内容【注:对付STM32L0系列芯片,内部FLASH被擦除后内容为全0】。

STM32L0芯片FLASH编程示例及提醒_擦除_代码 STM32L0芯片FLASH编程示例及提醒_擦除_代码 科学
(图片来自网络侵删)

下面代码截图是基于STM32Cube库来组织的,紧张涉及到字编程、半页编程、页擦除三个操作,对应着绿色下划线的3个库函数。

个中,半页编程的实行代码需配置到RAM里去运行。
其余,Period1和Period2分别来存放写5个字和5个半页的编程韶光,并放在指定的FLASH位置。
编译运行后我们可以看到如下结果:

上面截图是经由运行后芯片内部的部分FLASH空间的内容。
5个赤色方框围住的数据乃5个字编程后的结果,蓝色方框内的数据乃5次半页编程后的结果,但终极只看到3个半页的编程内容,那是由于后面两个半页的内容经页擦除操作后而消逝了。

用来统计编程韶光的定时器的计数频率为1MHz,显然Period1和Period2基本是相等的,将它们再除以5后所得编程韶光都是3.3ms的样子。
显而易见,进行批量代码编程时采取半页编程更高效。

前面说了做半页编程时其实行代码需放到RAM运行,该代码在STM32cube库的这个文件stm32l0xx_hal_flash_ramfunc.c里面。
实现该操为难刁难于不同的IDE在处理上稍有差异。
这里基于ARM MDK进行大略配置,划分点RAM出来给它用。

关于STM32L0系列FLASH编程的演示就先容到这里,愿能帮到有需之人以节省些韶光和精力。

标签:

相关文章

TCOOP-M101-433M发射模块_暗记_波形

遥控器参数遥控器采取HS2245PT芯片,吸收模块采取LR43B无线射频吸收模块遥控器与吸收模块选用的是下图所示的两款:由于LR4...

科学 2025-01-24 阅读3 评论0

源代码遭泄露是谁在扰乱_北碚区_产物

“感谢审查机关对民营企业著作权的重视和保护,帮我们挽回丢失,现在我们加强了软件源代码保密事情……”1月26日,重庆市北碚区审查院审...

科学 2025-01-24 阅读7 评论0