[STM8L]EEPROM操作读与写

发布者:科技梦行者最新更新时间:2017-02-24 来源: eefocus关键字:STM8L  EEPROM操作  读与写 手机看文章 扫描二维码
随时随地手机看文章

    STM8L带有片上EEPROM,常用来保存参数,事实上STM8L整个程序存储区都可以用于作为EEPROM,只是默认情况下被闭了。

    不同型号的STM8L器件其内部默认划分的EEPROM区域都是从0x1000地址开始,以下为STM8LXX的EEPROM读写例:


  1. #define EEPROM_STARTADDR 0x1000  

     //EEPROM读数据方法


  1. uint8 EEPROM_Read(uint16 Addr,uint8 *RxBuffer,uint8 Length)  

  2. {  

  3.     uint16 T=0;  

  4.     uint8 *EEP;  

  5.     EEP=(uint8 *)(EEPROM_STARTADDR+Addr);  

  6.     FLASH_DUKR=0xAE;  

  7.     FLASH_DUKR=0x56;  

  8.     FLASH_CR2=0x00;  

  9.     while((!(FLASH_IAPSR&S3))&(T<0xFFFF))T++;  

  10.     if(T==0xFFFF)return 0;  

  11.     while(Length--){  

  12.         *RxBuffer++=*EEP++;  

  13.     }  

  14.     return 1;  

  15. }  

    //EEPROM读数据方法


  1. uint8 EEPROM_Write(uint16 Addr,uint8 *RxBuffer,uint8 Lenth)  

  2. {  

  3.     uint16 T=0;  

  4.     uint8 *EEP;  

  5.     EEP=(uint8 *)(EEPROM_STARTADDR+Addr);  

  6.     FLASH_DUKR=0xAE;  

  7.     FLASH_DUKR=0x56;  

  8.     FLASH_CR2=0x00;  

  9.     while((!(FLASH_IAPSR&S3))&(T<0xFFFF))T++;  

  10.     if(T==0xFFFF)return 0;  

  11.     while(Lenth--){  

  12.         *EEP++=*RxBuffer++;  

  13.         T=0;  

  14.         while((!(FLASH_IAPSR&S2))&(T<0xFFFF))T++;  

  15.         if(T==0xFFFF)return 0;  

  16.     }  

  17.     FLASH_IAPSR&=~S3;  

  18.     return 1;  

  19. }  

    STM8LXX核对数据,程序存储器进行统一编址,所以可以直接对EEPROM进行读写,之间需要进行解锁操作,通过FLASH_DUKR完成,写入特定序列的密码即可,由于EEPROM的写入速度较慢,所以需要进行等待,判断其上一步工作是否已完成。实测发现,当CPU主频变化时,其等待时间差别较大,使用时应注意,并且需要加入等待超时处理。


关键字:STM8L  EEPROM操作  读与写 引用地址:[STM8L]EEPROM操作读与写

上一篇:[STM8L]TAB段式LCD液晶驱动程序
下一篇: 意法半导体(ST)与ClevX扩大合作,推出高安全性加密技术平台

推荐阅读最新更新时间:2024-03-16 15:34

STM8L探索套件学习笔记-GPIO端口操作(一)
STM8与STM32一样提供了固件库函数,方便用户快速开发,不需要花费很多时间去查寄存器。不过没有STM32的库完善,给的说明文档是chm格式的,名字是stm8l15x_stdperiph_lib_um.chm,这个官网有下载,今天按照官方给的模板自己做个模板文件夹,方便后期的移植,这样就不要再重复设置了。首先我们看看GPIO模块,在用固件库之前先了解下GPIO里面的大体的寄存器,方便后期使用固件库。缺点是你所以输入的参数都会检测是否符合规范,必须得按照库函数里面定义的参数写。 GPIO寄存器有:输出寄存器(ODR),输入寄存器(IDR),方向寄存器(DDR),控制寄存器1(CR1)和控制寄存器2(CR2).后面三个寄存器组和可
[单片机]
<font color='red'>STM8L</font>探索套件学习笔记-GPIO端口<font color='red'>操作</font>(一)
STM8L USART串口调试
最近学习开发STM8 MCU,,刚入手这颗MCU,对很多功能不太了解,只能一边开发一边学习,记录一下学习过程,如有错误的地方,敬请指正。 MCU:STM8L151K4 环境:IAR FOR STM8 因项目需求,需要调试USART功能,刚开始时候手里没有原理图,只有板子和datasheet,从datesheet上看到USART RX TX管脚为PC2 PC3. 于是便直接配置PC2 PC3,然后进行初始化,但是代码跑起来一直没有接收到MCU发送出去的数据,查看代码和datasheet,然后网上查找资料,发现USART有remappin功能,将PC3 PC2 映射到PA2 PA3上, 于是便询问硬件,确定板
[单片机]
<font color='red'>STM8L</font> USART串口调试
ST发布首批基于超低功耗技术平台的8位微控制器
  意法半导体(ST)日前宣布,首批整合其高性能8位架构和最近发布的超低功耗创新技术的8位微控制器开始量产。以节省运行和待机功耗为特色,STM8L系列下设三个产品线,共计26款产品,涵盖多种高性能和多功能应用。   设计工程师利用全新的STM8L系列可提高终端产品的性能和功能,同时还能满足以市场为导向的需求,例如,终端用户对节能环保产品的需求,便携设备、各种医疗设备、工业设备、电子计量设备、感应或安保设备对电池使用周期的要求。设计人员将选择STM8L这类超低功耗的微控制器,以符合低功耗产品设计标准,如“能源之星”、IEA的“1W节能计划”或欧盟的EuP法令,。   “意法半导体在技术创新上投入了大量资金,发展出支持STM8
[单片机]
[STM8L]EEPROM操作
STM8L带有片上EEPROM,常用来保存参数,事实上STM8L整个程序存储区都可以用于作为EEPROM,只是默认情况下被闭了。 不同型号的STM8L器件其内部默认划分的EEPROM区域都是从0x1000地址开始,以下为STM8LXX的EEPROM读写例: #define EEPROM_STARTADDR 0x1000 //EEPROM读数据方法 uint8 EEPROM_Read(uint16 Addr,uint8 *RxBuffer,uint8 Length) { uint16 T=0; uint8 *EEP; EEP=(uint8 *)(EEPROM_STARTADD
[单片机]
基于STM8L的液晶显示RTC
完整代码在云盘里 http://pan.baidu.com/s/1pLB4OWj /** ****************************************************************************** * @file Project/Template/main.c * @author MCD Application Team * @version V1.3.0 * @date 07/14/2010 * @brief Main program body **********************************************************
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved