历史上的今天

今天是:2024年11月07日(星期四)

正在发生

2019年11月07日 | 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读写操作

上一篇:STM8S——watchdog(IWDG)
下一篇:STM8S AWU低功耗模式

推荐阅读

据科技日报报道,在6日开幕的第十二届中国国际航空航天博览会上,一架拥有巨幅翼展的无人机引人注目。据悉,这是中国航天科技集团十一院(以下简称十一院)研制的一型高空、高速、隐身、长航时无人机“彩虹-7”,可在高危环境下执行持续侦察、警戒探测、防空压制、作战支援、发射或引导其它武器对高价值目标发动打击等作战任务。据十一院彩虹无人机技术专...
中国储能网讯:近日,中国电力企业联合会发布《2019年前三季度全国电力供需形势分析预测报告》。针对持续的政策性降电价、售电量增速下滑、电价交叉补贴等因素导致电网企业利润明显下滑、中西部省级电网大面积亏损等相关问题,《报告》提出: 进一步完善居民阶梯电价制度,推动交叉补贴暗补改为明补; 结合各地电网发展阶段、电价承受能力等实际,差...
去年,HMD 推出了诺基亚 C1 –一款经济实惠的 Android Go 手机(50 欧,约 392 元),配备 5.45 英寸紧凑型显示屏。而今天,它的继任者 C1 Plus 在发布前的时间里被曝出炉。  IT之家了解到,该机此前已通过 EEC 认证,列表中可以查实该机型号 TA-1312 。  据外媒 NokiaPowerUser 消息,诺基亚 C1 Plus(诺基亚 C1+)...
摆脱芯片供应短缺问题 双芯片代工策略见效 11月4日,高通股价飙涨逾12%,相较同业,高通在面对芯片更显得心应手,并看好明年业绩将持续成长。 高通执行长 Crisano Amon 于电话会议上表示,预计12月底供应问题将明显好转,明年下半年将有足够的供应满足需求,预期 2022财年EPS有望年增20%。 Lily点评:芯片短缺一直影响5G手机的出货量。高通作为全...

史海拾趣

问答坊 | AI 解惑

Linux内核编译菜单中各选项代表的含义

Linux内核编译菜单中各选项代表的含义…

查看全部问答∨

《数字信号处理教程-第二版》电子书 pdf格式

《数字信号处理教程-第二版》电子书 pdf格式 不知道对大家是否有用…

查看全部问答∨

同步与异步的区别

异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输 ...…

查看全部问答∨

ov9650显示问题

本人最近在做ov9650的驱动,平台为wince5.0 三星2450 现在的问题是为什么camera在显示图像的时候,LCD出现了两个窗口显示图像,而且图像显示不清楚…

查看全部问答∨

大家有没什么好玩的嵌入式的点子,做的出来不无所谓

大家有没有什么好玩的嵌入式作品的点子。做不出来无所谓哦。。。。一起来晒晒想法吧。。。。。。最好要好玩点噶,,,,,,,,…

查看全部问答∨

关于ucos的疑问

今天开始学习ucos,但是看邵贝贝的书,看的稀里糊涂, 1,ucos在xp上面跑起来跟把ucos移植到pc上是一个概念吗? 邵的书前4个例子,都是在xp底下在c盘下建了bc31,software 2个文件夹,用borland编译,生成了一个test.exe可执行文件,双击test.exe ...…

查看全部问答∨

怎么知道外线进来的电话号码,时间,我要编程实现,有什么思路?》

如题,,,, 我有一个项目,,需要编程实现,象手机一样的接电话的问题,, 用什么设备与电脑连??? 怎么编程 只要相关的,都可以发言,,,,急用,,,,等!!!!一直观注 …

查看全部问答∨

WinCE下如何使子窗口能用鼠标移动(即移动不带标题的窗口) ?

WinCE下如何使子窗口能用鼠标移动(即移动不带标题的窗口) ?…

查看全部问答∨

学习stm32是否先要学arm7呢?

                                 有单片机基础是否可以直接学习STM32?还是先学习ARM7比较好?谢谢!…

查看全部问答∨

关于149的ADC

请问各位大侠,当149的8根外部模拟输入不够用时,是不是可以用A8及A9来采样外部的模拟输入,如果可以,需要怎么设置,谢谢!…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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