0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32单片机内部FLASH的编程和擦除操作

电子设计 ? 来源:CSDN博主 ? 作者: hurryddd ? 2021-02-14 16:37 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单片机内部的FLASH除了存储固件以外,经常将其分成多个区域,用来存储一些参数或存储OTA升级的待更新的固件,这时就会涉及到单片机内部FLASH的编程和擦除操作,STM32不同系列的单片机内部FLASH特性和扇区大小都不太一样,如果不注意这些细节,那就等着爬坑吧

1、FLASH的分区以及扇区大小

FLASH擦除是按照扇区擦的,所以这个很重要,在工程中全局搜索 FLASH_PAGE_SIZE 宏就可以查看该芯片的页(扇区)大小,改宏在 stm32xxx_hal_flash.h中有定义

2、FLASH擦拭后的状态

F1和F4系列的芯片FLASH在擦除后会是0xFFFFFFFF,而L1系列的芯片FLASH在擦除后是0x00000000!!!!!

3、FLASH的编程速度

L1芯片内部FLASH编程速度比F1慢50倍!!!所以在使用L1芯片写入数据时相对于F1慢是正常的

2、STM32 F1、F4、L1系列内部FLASH分区及大小

1、STM32F1系列

对于F1系列的芯片大容量产品的FLASH主存储器每页大小为2K,如【下图】,而中容量和小容量的产品每页大小只有1K

pIYBAF_9XyWAQ1dBAAOSvMAux10854.png

2、STM32F4系列

分为2个Bank,每个Bank分为12个扇区,前4个扇区为16KB大小,第五个扇区是64KB大小,剩下的7个扇区都是128K大小

pIYBAF_9X0OAEsyVAAOvy3Hl9PQ381.png

3、STM32L1系列

3、STM32 F1、F4、L1系列内部FLASH编程时间

信息参考对应芯片的数据手册的 Electrical characteristics 章节

o4YBAF_9X1iAWgPRAAIF8YMGK0Y997.png

1、STM32F1系列

可以看出F1系列内部FLASH页擦除时间最大为40ms,半字写入的时间为52.2us,比如按字写入1024字节数据,需要26.8ms,还是比较快的

pIYBAF_9X2aAaA7-AAEGV0qnVH4638.png

2、STM32F4系列

可以看出F4系列内部不同扇区擦除时间也不一样的,字写入的时间为16us,比如按字写入1024字节数据,只需要4ms,非常快

pIYBAF_9X3iAHIhRAALOnPFcjPU077.png

3、STM32L1系列

可以看出L1系列内部FLASH页擦除和编程的时间都是3.28ms,比如按字写入1024字节数据,需要840ms,非常慢;但是擦除是比较快的

pIYBAF_9X4eATOy-AAF82rU5_UE350.png

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6069

    文章

    45076

    浏览量

    653870
  • FlaSh
    +关注

    关注

    10

    文章

    1687

    浏览量

    152567
  • 存储器
    +关注

    关注

    39

    文章

    7662

    浏览量

    168370
  • STM32
    +关注

    关注

    2296

    文章

    11038

    浏览量

    366657
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问STM32内部Flash操作是不是优先级最高?

    STM32内部Flash操作是不是优先级最高?目前在内部Flash的单独一页存储了数据,发现在
    发表于 08-13 07:03

    STM32F103RET6 FLASH擦除失败的原因?怎么解决?

    芯片不掉电,再进行擦除会出现擦不掉的情况,但是FLASH->SR寄存器未起任何异常状态,只有一个EOP置位。如果只是擦除->写入->擦除,中间不进行读的
    发表于 07-10 06:40

    第二十九章 读写内部FLASH

    本文介绍了W55MH32内部FLASH,其含主存储、系统存储等,可存储代码及掉电保存数据。读写需解锁、擦除页等步骤,标准库提供相关函数。还展示了擦除
    的头像 发表于 06-20 14:09 ?680次阅读
    第二十九章 读写<b class='flag-5'>内部</b><b class='flag-5'>FLASH</b>

    STM32G473 flash擦除时程序卡死,为什么?

    我在进行双bank升级的时候,会先进行FLASH的批量擦除。在连续的升级过程中发现成功几次后出现了执行擦除flash操作时程序卡死的情况,直
    发表于 06-12 08:05

    STM32G473 flash擦除时程序卡死的原因?

    我在进行双bank升级的时候,会先进行FLASH的批量擦除。在连续的升级过程中发现成功几次后出现了执行擦除flash操作时程序卡死的情况,直
    发表于 06-09 07:23

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 ?3次下载

    STM32L476 Flash擦除失败的原因?

    开发板MCU型号:STM32L476RG 同样的固件在开发板中flash读写擦除操作都没问题,但在产品中擦除函数返回成功,但
    发表于 04-23 08:26

    STM32F10xxx单片机编程手册

    电子发烧友网站提供《STM32F10xxx单片机编程手册.pdf》资料免费下载
    发表于 04-14 14:56 ?11次下载

    如何使用MCX N ROM API进行内部闪存擦除/编程

    使用 MCX N ROM API 进行内部闪存擦除/编程
    发表于 03-27 07:04

    STM32CubeIDE在线调试时,如何配置擦除Flash的部分Page?

    STM32CubeIDE在线调试时,如何配置擦除Flash的部分Page
    发表于 03-13 08:02

    使用STM32 ST-LINK Utility和j-flash无法擦除怎么解决?

    在keil烧录程序中直接报错 使用工具擦除报 使用STM32 ST-LINK Utility 和j-flash也无法擦除这个要怎么解决
    发表于 03-12 07:07

    stm32g474板卡偶发flash的某块代码区被擦除怎么解决?

    flash擦除,每次擦除的都是同一个区域;导致卡在bootloader中,无法跳转,只能通过重新烧录解决;bootloader会有擦除flash
    发表于 03-11 07:47

    单片机内部怎么产生三路相位相差120°的正弦波?

    做电机驱动或者逆变器,都需要使用单片机或者DSP产生正弦波,那么,在单片机内部产生正弦波的思路是什么呢?本视频来说下对应的思路,有疑问的话欢迎大家评论,留言!!
    发表于 01-20 10:56

    stm32单片机用什么软件编程

    STM32单片机是一种广泛应用于嵌入式系统领域的微控制器,具有高性能、低功耗、丰富的外设接口等特点。要对STM32单片机进行编程,需要选择合
    的头像 发表于 09-02 10:16 ?3714次阅读

    stm32单片机烧录程序会擦除原来的程序吗

    STM32单片机烧录程序的过程中, 通常情况下会擦除原来的程序 ,并将新程序写入单片机的闪存(Flash)中。这一过程是通过烧录工具(如S
    的头像 发表于 09-02 09:42 ?4940次阅读