打印

IAR下STM8的EEPORM操作

[复制链接]
1914|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
南宫云明|  楼主 | 2013-4-11 15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 南宫云明 于 2013-4-11 15:37 编辑
/******************************************************
  EEPROM_Init()函数,EEPROM
  EEPROM初始化
*******************************************************/
void EEPROM_Init()
{
  FLASH_CR1 = 0x00;//Interrupt disabled
  FLASH_CR1|=0x01; //设置为标准编程时间

  FLASH_CR2 = 0x00;
//  FLASH_IAPSR = 0x00;//Data EEPROM area write protection enabled
}

/******************************************************
  EEPROM_read()函数
  EEPROM读函数
*******************************************************/
unsigned char EEPROM_read(unsigned int addr)
{  
  return (unsigned char )*((unsigned int *)addr);
}

/******************************************************
  EEPROM_write()函数
  EEPROM写函数
*******************************************************/
unsigned char EEPROM_write(unsigned char data,unsigned int addr)
{
  do
  {
      FLASH_DUKR = 0xAE;
      FLASH_DUKR = 0x56;
  }
  while((FLASH_IAPSR & 0x08) == 0);//等待解锁成功
  
  
  *((unsigned int *)addr) = data;//这里如果也是一直等待到写完成(EOP为1)也没用
   
  FLASH_IAPSR &= 0xf7;//关闭写
  
  if((FLASH_IAPSR|0xfb) == 0xff)
  {
    FLASH_IAPSR &= 0xfb;
    return TRUE;
  }
  else
    return FALSE;
}

/******************************************************
  main()函数,主函数
  主函数
*******************************************************/
void main()
{
  unsigned char i;
  unsigned char j;
  CLK_Init();//配置时钟
  EEPROM_Init();//EEPROM初始化
  i = EEPROM_read(0x9bff);
  i = i + 1;
  j = EEPROM_write(i,0x9bff);
  Uart_SendByte(j);//串口发送调试数据
  i = EEPROM_read(0x9bff);
  Uart_SendByte(i);
  while(1)
  {
  }
}
上述代码每次仿真的时候都能够从EEPROM中读出数据,并加1后写入EEPROM,但是断电,重启,能从EEPROM中读出数据,但是不能写数据到EEPROM中。以下第一个数据是仿真的数据,第二三个数据是断电的数据。请大神帮忙看看。。。STM8的库看起来太繁琐了。。。。原先EEPROM中存的数据位0xBD

[14:45:35 ---] 01 BE
[14:45:44 ---] 00 BE
[14:45:47 ---] 00 BE

D:\Documents\Desktop\a.bmp
沙发
南宫云明|  楼主 | 2013-4-11 15:09 | 只看该作者
哪位大神如果你也有用IRA直接用寄存器来操作EEPROM的代码,能分享一下嘛?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

272

帖子

0

粉丝