STM32L0芯片FLASH编程简单演示

发布者:知音学友最新更新时间:2023-06-26 来源: elecfans关键字:FLASH  编程 手机看文章 扫描二维码
随时随地手机看文章

这里就STM32L053芯片的FLASH编程做个简单演示并做些提醒,以供有需要的人参考。


一般来讲,FLASH编程主要包括擦除、代码编程、Option字修改操作,关于Option编程下面不做介绍。STM32L0芯片的擦除除了支持全片擦除外,再就是支持页擦除,每页的大小为128Bytes,即32个字。编程可以按字或按半页【64Bytes】编程。单页擦除、单字编程以及半页编程的时间都是一样的,大概3.2ms左右,这点在芯片数据手册上也明确出来了。


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


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


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

STM32L0芯片FLASH编程简单演示

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

STM32L0芯片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编程简单演示


关于STM32L0系列FLASH编程的演示就介绍到这里,愿能帮到有需之人以节省些时间和精力。


关键字:FLASH  编程 引用地址:STM32L0芯片FLASH编程简单演示

上一篇:STM32G0开发笔记:FreeRTOS和CLI组件使用
下一篇:STM32CUBEMX创建X-CUBE-BLE1例程

推荐阅读最新更新时间:2024-11-11 16:28

C51编程15-中断篇(定时器中断2)
使用定时器/计数器中断,需要将满足以下的条件。 1)中断总允许打开 EA = 1; 2)中断源允许打开 ET0 = 1或者 ET1= 1; 3)设置定时器计/计数器的工作方式(设置TMOD) 4)装载定时器,设置计数器的初始计算值。 5)开启定时器(TCON中的TR0 = 1或者TR1 = 1) 6)中断服务函数 在满足上面的条件后,就使用定时器了,但为了对定时器的4种方式更深入的了解,下面从逻辑图上讲解4种方式。 方式0: 逻辑结构图 从上面的逻辑结构图中,逻辑结构主要分为三个部分; 1)计数源:计数源可以选择振荡器12分频(机器周期);计数源也可以选择T0(P3.4)引脚。当C/
[单片机]
C51<font color='red'>编程</font>15-中断篇(定时器中断2)
干货!西门子PLC程序编程技巧
OB1:主程序; OB100:初始化程序(无需主程序调用); OB35:100ms(可修改)中断(无需主程序调用),可以调用PID模块; OB80、OB82、OB85、OB86、OB87、OB121、OB122:故障诊断模块(无需主程序调用、无需编程); FC1:系统模式; FC2:输入处理; FC3:输出处理; FC4:运行处理; FC5:停止处理; FC6:手自动切换; FC100:之后用来建立一些可以循环调用的子程序; FC105:系统自带,模拟量输入子程序(可以循环调用); FC106:系统自带,模拟量输出子程序(可以循环调用); modbus通讯(CP341):FB7:P_RCV_RK,FB8:P_SND_RK; 通讯C
[嵌入式]
MSP430F169 FLASH 操作
本章介绍430F169的FLASH操作以及特性 建议点击下方链接根据官方手册进行程序书写 废话不多说冲!!! 什么是FLASH 简单来说就像是储物间,你的代码就是物品存储在里面,用到那个代码时取出来用再放回去! 1 430F169 具有60KB主存和256B闪存和2KB RAM 相对于其他的单片机来说是比较大的存储空间了 2 注意事项 (敲黑板) 在进行FLASH操作的时候必须保证电压在2.7V以上时钟频率在257~476KHZ之间,不然会出现意想不到的错误 3 FLASH的写入和擦除 (敲黑板) 430F169这款芯片只支持段擦除或者块擦除(擦除主存段)或者全部擦除(主存加闪存)。 选择WRT或者BLKWRT选择
[单片机]
MSP430F169 <font color='red'>FLASH</font> 操作
基于单片机ISP技术原理及在线编程器的实现
  以ATMEL公司的AT89S51/AT89S52单片机为例,介绍ISP技术原理,及ISP在线编程器的实现方法。      AT89S51/AT89S52单片机的ISP引脚共有4个:RST、MOSI、MISO和SCK。      各引脚的功能如下:RST为在线编程输入控制端,仅在ISP下载过程中保持高电平,在系统正常工作时该引脚为系统复位端,保持低电平状态。MOSI为主机输出/从机输入的数据端,系统正常工作时,该引脚为通用I/OP1.5口线。MISO为主机输入/从机输出的数据端。系统正常工作时,该引脚为通用1/0P1.6口线。SCK为串行编程的时钟端,可实现主、从机时序的同步,该时钟频率不得超过系统时钟的1/16。      系
[单片机]
基于单片机ISP技术原理及在线<font color='red'>编程</font>器的实现
arm 裸板编程的总结(上)
一、嵌入式系统概述 1.微处理器相关 1.体系结构 a.冯诺依曼体系 特点:指令和数据公用同一条数据总线 注重:主频、缓存 b.哈佛体系 特点:指令和数据分开存储,使用不同的数据总线进行传输 注重:流水线的层级 缺点:不适用于 跳转(调度)比较频繁的场合 2.RISC与CISC a.CISC特点: 1.指令多 2.寻址方式多(甚至可以在内存和内存之间进行寻址,而不通过寄存器) 3.2/8法则 b.RISC特点: 1.指令少,好记 2.寻址方式少,一般只支持load/store两类访存指令 3.流水线 2.嵌入式系统的组成 1.软件 操作系统(可选) 应用程序 网络(可选) 2.硬件 a.嵌入式微处理器 分类: MCU MP
[单片机]
stm32 片上flash用作EEPROM(掉电保存)
#if !defined (_FLASH_H) #define _FLASH_H #define FLASH_ADR 0x08010000 //要写入数据的地址 #define u8 INT8U #define u16 INT16U #define u32 INT32U union union_temp16 { unsigned int un_temp16; unsigned char un_temp8 ; // example 16: 0x0102 8: 2 1 }my_unTemp16; typedef struct { u8 apn ; u8 useName ; u8 password ; u8 serverIP
[单片机]
单片机编程学习
怎样快速学好单片机,这是个困扰很多大学生的一个难题。 我认为以下的方法比较适当:先学51单片机,它是基础,比较容易入手,51单片机学好之后,有了编程的灵感,再学其它的单片机也就容易了。 那么,51单片机怎样快速入门呢?我有一个顺口溜:单片机,要学好,有决窍,先模仿,再提高。实践加理论,理论加实践,用心领悟最重要。具体来说, 第一课 安装软件 1.1 安装KEIL C51 1.2 安装PROTEUS 第二课 调试与仿真小程序 2.1 在KEIL上能调试二、三个简单的小程序 2.2 在PROTEUS上实现简单的仿真 第三课 修改程序 3.1 修改一个最简单的程序并下载 3.2 修改一个略为复杂的程序并下载 第四
[单片机]
基于可编程逻辑阵列的RS232至RS422的串行口扩展电路
由于RS-422总线具有抗干扰能力强、通讯速率高、通讯距离远、可以与多台从机通讯等特点,所以,该总线在数据采集、监控管理及集散控制系统的主从式多机通讯系统中得到普遍应用。但是,若在一条RS-422 通讯总线上连接过多的从机,则有可能会由于总线负担过重,而使系统可靠性变差,有时甚至会导致整个系统无法正常工作。 为了解决RS422总线在实际应用中可能出现的问题,笔者设计出一种以可编程逻辑阵列GAL16V8为核心的串行口扩展电路。它可将微机的一路RS232串行口扩展至4路RS-422串行口。该电路通过主机软件对DTR、RTS控制信号的编程,可以和任选通讯接口的从机进行数据通讯;也可以不用DTR、RTS控制信号,而直接实现主机与全部通讯接口
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved