历史上的今天

今天是:2024年08月31日(星期六)

2021年08月31日 | 【STM8S】 FLASH与EEPROM读写操作

发布者:自由思想 来源: eefocus关键字:STM8S  FLASH  EEPROM  读写操作 手机看文章 扫描二维码
随时随地手机看文章

以下为FLASH操作:


#include "flash.h"

#include "stm8s_flash.h"

 

 

void Flash_Write_bytes(uint32_t Address , uint8_t * DataBuff,uint16_t length)

{

  uint16_t Count=0;

  for( Count=0 ; Count  {

    FLASH_ProgramByte_User(Address+Count,DataBuff[Count]);

  }

}

 

 

 

void FLASH_ProgramByte_User(uint32_t Address, uint8_t Data)

//将库函数中u16改为u32,否则当地址超过10000H时出错

{

    /* Check parameters */

    assert_param(IS_FLASH_ADDRESS_OK(Address));

    *(PointerAttr uint8_t*) (uint32_t)Address = Data;

}

注:写FLASH前需要解锁   


FLASH_Unlock(FLASH_MEMTYPE_PROG);  //FLASH解锁


以下为EEPROM操作:


#include "EEPROM.h"

#include "stm8s_flash.h"

/*******************************************************************************

* ==EEPROM初始化函数==

* FLASH_DeInit(); --> 复位EEPROM的寄存器

* FLASH_Unlock(FLASH_MEMTYPE_DATA); --> 解锁 对 Data EEPROM memory 进行操作

* FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD); --> 标准编程时间

*******************************************************************************/

void EEPROM_INIT(void)

{

FLASH_DeInit();

FLASH_Unlock(FLASH_MEMTYPE_DATA);

FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);

}

/****************************************************************************************

*  Function: Derive_EPWrite                                                                        

*  Object: 写EEPROM

*  输入: 头地址(0~2048)  数据指针  数据长

*  输出: 无                                         

*  备注:  2K EEPROM  不能超过

****************************************************************************************/

void Derive_EPWrite(u16 Adr, u8 *pData, u16 Len)

{

u8 *p;

//p指针指向EEPROM 对应的单元

p = (u8*)0x4000 + Adr;   

//解锁

FLASH_Unlock(FLASH_MEMTYPE_DATA);

//写数据

for( ; Len > 0; Len--)

{

Refresh_WWDG_Window(); //喂狗

*p++ = *pData++;

//等待写完成

while(!(FLASH_GetFlagStatus(FLASH_FLAG_EOP))); 

//加锁

FLASH_Lock(FLASH_MEMTYPE_DATA);

}

/****************************************************************************************

*  Function: Derive_EPRead                                                                         

*  Object: 读EEPROM

*  输入: 头地址(0~2048) 数据存放指针 数据长

*  输出: 无                                         

*  备注:  2K EEPROM

****************************************************************************************/

void Derive_EPRead(u16 Adr, u8 *pData, u16 Len)

{

u8 *p;

//p指针指向EEPROM 对应的单元

p = (u8*)0x4000 + Adr; 

//解锁

FLASH_Unlock(FLASH_MEMTYPE_DATA);

//读数据

for( ; Len > 0; Len--)

{

*pData++ = *p++;

Refresh_WWDG_Window(); //喂狗

}

//加锁EEPROM

FLASH_Lock(FLASH_MEMTYPE_DATA);

}


关键字:STM8S  FLASH  EEPROM  读写操作 引用地址:【STM8S】 FLASH与EEPROM读写操作

上一篇:STM8内部EEPROM的使用详解
下一篇:【STM8S】 窗口看门狗

推荐阅读

海康机器人全新发布的工业相机客户端MVS V3.0.0,现已在官方网站开放。本次版本启用新版LOGO,全新的界面交互设计令人耳目一新。除外观改动外,新版MVS还带了多项新增功能和性能优化。 MVS V3.0.0的栏分类和属性树得以优化,快速属性保存功能,可让您快速地查找相关设定;多相机界面全屏预览功能支持自定义分割窗口,及自定义画面布局;您还可以对多...
据消息报道,可口可乐欧洲合作伙伴(CCEP)正在英国一个主题公园配送服务,利用一款自动驾驶机器人配送饮料…… 黑科技,前瞻技术,自动驾驶,可口可乐英国公园,可口可乐自动驾驶,可口可乐自动驾驶配送,可口可乐自动驾驶送货机器人,汽车新技术 据消息报道,可口可乐欧洲合作伙伴(CCEP)旗下创新投资基金CCEP Ventures正与自动驾驶专家leRetail合...
采用电池供电的数字万用表普遍存在一个问题是,即忘记判断电源,从而使万用表的电池很快用掉,解决这一问题的办法是。将一个周期发声报警装置装入数字万用表内,当接通电源时,报警装置即发出声音。电路图如下图:报警装置用一块低功耗CMOS电路构成,其主要部分是两个施密特触发器振荡器。ICA约每隔3S产生一个300MS的脉冲,这一脉冲又触发以音频工作的ICB...
在华为智能手机上,中国造零部件的采用出现激增。拆解华为支持“5G”的最新款智能手机,中国造的比率按金额计算达到约6成,相比旧机型翻了一番。在美国制裁仍持续的背景下,将多种零部件改为国产。核心半导体的一部分仍依赖美国造的库存,今后的机型或将在功能升级方面落后。 日本经济新闻(中文版:日经中文网)获得调查公司Fomalhaut Technology ...

史海拾趣

问答坊 | AI 解惑

串口服务器在工厂地磅集中管理中的应用

       某大型水泥厂具有多套电子地磅与计算机计量系统,由于都是地磅是串口设备无法远距离连接,因此计量PC服务器就近配置在现场,未能将实时获取的采集数据上传到中控室完成数据计量汇总难,并且设备配置分散重复。   ...…

查看全部问答∨

请教达人tlv2382该如何使用

想做个信号放大电路,2级放大的那种,用tlv2382,不知有人用过这个没?…

查看全部问答∨

怎样可以赚钱啊,

本帖最后由 paulhyde 于 2014-9-15 09:16 编辑 如题,谢谢  …

查看全部问答∨

这个波形怎么产生

小弟初学verilog,最近遇到一题,输入input信号为50KHz,占空比80%,要在input的每个上升沿产生一个2us的高电平,信号output如下图,该怎么产生呢,看起来挺简单的,就是不知怎么下手,请高人指点一下,不胜感激。 …

查看全部问答∨

有没有人使用EBOX开发WinCE?

有没有人使用EBOX开发WinCE? 有没有人具体用过EBOX的机子,现在想找个EBOX-2300或是其他的EBOX系列机子玩X86结构的WinCE 6.0的开发,希望大家给点建议:EBOX系列的用在啥行业,与ARM的有竞争力? 在网上找个人转让“闲置2年”的EBOX-2300,开价60 ...…

查看全部问答∨

这个程序的数据传送电路图怎么样设计

        ORG         0000H                     AJMP MAIN         MAIN:       & ...…

查看全部问答∨

双通道问题

我的PC现在只有一根512M的内存条(金泰克DDR2 667),现在想开通双通道。是否一定要再加一根同型号的呢?由于暂时缺货,卖的人叫我加一根1G的,但是我怕兼容问题。自己又不是很懂,所以请大家给我建议。谢谢…

查看全部问答∨

stm32的中断服务程序

哪位大虾有stm32的中断服务程序的例程啊,我在写程序的时候使用了STM32_Init.c文件来初始化配置,写个简单的接受中断程序就好了,谢谢了最好有类似的例程,小弟感激涕零!最主要的是用STM32_Init.c这个文件…

查看全部问答∨

实现多个9013功能的集成芯片?谁给推荐一下?

电路中需要用430的IO口控制步进电机的脉冲和方向,还有一个5V的阀,用io口控制5V通断,如果控制两个步进电机,两个阀,就需要六个9013,有没有实现这功能的集成电路芯片呢? ULN2003,这个芯片是不是可以实现这个功能?…

查看全部问答∨

DIY---LED应急闪灯-----步骤过程

1.首先让我们做下准备工作吧,需要准备的是工具,工欲善其事,必先利其器嘛。需要的工具有:一块电路板(PCB板),老虎钳,烙铁,焊锡。如果不熟悉工具的应用,建议先找点更简单的玩意先练练手~然后看看施工图纸,所需要的零件以及线路也标记在电 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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