您的位置 首页 国产IC

stm8s开发(九) EEPROM的运用:运用EEPROM存储数据!

EEPROM是单片机应用系统中经常会用到的存储器,它主要用来保存一些掉电后需要保持不变的数据。在以前的单片机系统中,通常都是在单片机外面再扩充一个EEPROM芯片,这种方法除了增加成本外,也降低了

  EEPROM是单片机运用体系中经常会用到的存储器,它首要用来保存一些掉电后需求坚持不变的数据。在曾经的单片机体系中,一般都是在单片机外面再扩大一个EEPROM芯片,这种办法除了添加本钱外,也降低了可靠性。现在,许多单片机的公司都推出了集成有小容量EEPROM的单片机,这样就便利了运用,降低了本钱,提高了可靠性。

  STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为特征的是,在STM8单片机中,对EEPROM的拜访就象惯例的RAM相同,十分便利。EEPROM的地址空间与内存是一致编址的,地址从004000H开端,巨细依据不同的芯片型号而定。

  为了办理便利,界说EEPROM的地址

  #define EP_HEADER_ADDR 0x4000

  操作EEPROM需求初始化,也便是FLASH解锁,解锁需求两个密钥,次序还不能互换。

  void EEPROM_init(void)

  {

  do

  {

  FLASH_CR1=0x00;

  FLASH_CR2=0x00;

  FLASH_NCR2=0xFF;

  FLASH_DUKR = 0xAE; // 写入第一个密钥

  FLASH_DUKR = 0x56; // 写入第二个密钥

  } while((FLASH_IAPSR & 0x08) == 0); // 若解锁未成功,则从头再来

  }

  还有一个加锁的功用,一般来说操作完EEPROM之后需求加锁维护。

  void EEPROM_lock(void)

  {

  FLASH_IAPSR=(u8)(~0x08); //从头上锁

  }

  接下来便是两个读写的根本操作了。

  //EEPROM指定地址写入一个数据 addr:相对地址 dat:数据

  void EEPROM_write(unsigned char addr, unsigned char dat)

  {

  unsigned char *p;

  p=(unsigned char *)(EP_HEADER_ADDR + addr);

  *p=dat;

  while(!(FLASH_IAPSR&0x04)); //等候写操作成功

  }

  //EEPROM指定地址读出一个数据 addr:相对地址

  unsigned char EEPROM_read(unsigned char addr)

  {

  unsigned char *p;

  p=( unsigned char *)(EP_HEADER_ADDR + addr);

  return *p;

  }

  这儿给的地址是肯定地址,函数内有个偏移地址的操作(偏移4000H)。

  炒鸡简单是不?

  有关EEPROM和FLASH的介绍:http://blog.csdn.net/yuanlulu/article/details/6163106

  附上stm8s在IAR环境下的项目工程,包含了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代码。

  http://download.csdn.NET/detail/devintt/9454188

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/183994.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部