• 大小: 32KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: STM8  003  EEROM  

资源简介

在STM8S003系统上实现单片机片内存储器EEROM的读写操作。

资源截图

代码片段和文件信息

/* MAIN.C file
 *
 * Copyright (c) 2002-2005 STMicroelectronics
 */
#include  “stm8s003f3p.h“
unsigned char EEPROM_TemH @0x4000;  //EEPROM起始地址 存放数据高位
unsigned char EEPROM_TemL @0x4001;  //               存放数据低位

unsigned char *EEPROM_TempH;  //EEPROM起始地址 存放数据高位
unsigned char *EEPROM_TempL;  //               存放数据低位


unsigned char UnlockEEPROM(void)
{
    
FLASH_DUKR=0xAE;
FLASH_DUKR=0x56;
//判断FLASH_IAPSR DUL位  0 写保护使能  1 解锁成功
if(FLASH_IAPSR&0x08)  return 1;
else    return 0;
}
//方法三
void WriteToEEPROM2(void)
{
     unsigned int t;
    while(!UnlockEEPROM());//解锁eeprom
    if(EEPROM_TemH!=0x00||EEPROM_TemL!=0x00)//检测是否第一次上电
    {
      t=EEPROM_TemH<<8|EEPROM_TemL;//读出温度上次掉电前的值
    }
    
    EEPROM_TemH=0x12;//数据存入EEPROM
    EEPROM_TemL=0x34;
    while((FLASH_IAPSR&0x04)==0x00);//等待EEPROM写操作完成
    t=10;
}


//方法二
void WriteToEEPROM1(void)
{
int i;
 EEPROM_TempH=(unsigned char *)0x4000; 
 EEPROM_TempL=(unsigned char *)0x4001;

do
{
//写入MASS密钥,解锁DATA EEPROM
FLASH_DUKR=0xAE;
FLASH_DUKR=0x56;
}
while((FLASH_IAPSR&0x08)==0);//若未解锁成功,则重新再来
*EEPROM_TempH=0x05;
    *EEPROM_TempL=0x08;
while((FLASH_IAPSR&0x04)==0);//等待操作成功。
i=10;
}
//方法一
void WriteToEEPROM(void)
{
    unsigned char *p;
unsigned char ch;
p = (unsigned char *)0x4000; // 指针p指向芯片内部的EEPROM第一个单元

// 对数据EEPROM进行解锁
do
{
FLASH_DUKR = 0xae; // 写入第一个密钥
FLASH_DUKR = 0x56; // 写入第二个密钥
}
while((FLASH_IAPSR & 0x08) == 0);   // 若解锁未成功,则重新再来

*p = 0xaa; // 写入第一个字节
while((FLASH_IAPSR & 0x04) == 0); // 等待写操作成功

ch = *p; // 将写入的内容读到变量ch中
}

main()
{
 WriteToEEPROM2();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      13966  2017-09-15 09:45  STM8_EEROM\Debug\eerom.elf

     文件       2287  2017-09-14 16:15  STM8_EEROM\Debug\eerom.lkf

     文件      18387  2017-09-15 09:45  STM8_EEROM\Debug\eerom.map

     文件        970  2017-09-15 09:45  STM8_EEROM\Debug\eerom.s19

     文件      15046  2017-09-15 09:45  STM8_EEROM\Debug\eerom.sm8

     文件       7103  2017-09-15 09:45  STM8_EEROM\Debug\main.ls

     文件      14555  2017-09-15 09:45  STM8_EEROM\Debug\main.o

     文件       5420  2017-09-15 09:40  STM8_EEROM\Debug\stm8_interrupt_vector.ls

     文件       2619  2017-09-15 09:40  STM8_EEROM\Debug\stm8_interrupt_vector.o

     文件        470  2017-09-15 09:45  STM8_EEROM\eerom.dep

     文件        986  2017-09-15 09:44  STM8_EEROM\eerom.pdb

     文件      12210  2017-09-14 18:46  STM8_EEROM\eerom.stp

     文件        199  2017-09-15 09:45  STM8_EEROM\EEROM.stw

     文件      43801  2017-09-15 09:44  STM8_EEROM\EEROM.wdb

     文件      44103  2017-09-15 09:45  STM8_EEROM\EEROM.wed

     文件       1829  2017-09-15 09:45  STM8_EEROM\main.c

     文件       2291  2017-09-14 16:15  STM8_EEROM\Release\eerom.lkf

     文件       1954  2007-11-13 16:37  STM8_EEROM\stm8_interrupt_vector.c

     目录          0  2017-10-14 11:38  STM8_EEROM\Debug

     目录          0  2017-10-14 11:38  STM8_EEROM\Release

     目录          0  2017-10-14 11:38  STM8_EEROM

----------- ---------  ---------- -----  ----

               188196                    21


评论

共有 条评论