资源简介
在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
- 上一篇:STM8S003 PWM功能实现
- 下一篇:STM8S003红外遥控支持连发码
相关资源
- STM8S003红外遥控支持连发码
- STM8S003 PWM功能实现
- STM8S003读取DS18B20温度传感器
- STM8S003模拟串口中断接收
- DOSRDP是可以从DOS连到windows终端的软件
- STM8工程模板史上最完整版
- 摄像头模组-EV76C560+DS90UB913A+STM8S103
- STM8S105C6T6开发板
- MSP430 和VS1003 完成的音乐播放
- STM8S_PWM_LED呼吸灯
- 工业级STM8霍尔测速程序
- 完美解决VS2003.Net fatal error LNK1201: 写入
- QT 4.5.0 with vs2003 vs2005 vs2008
- RMS_CHS_WM2003sp_WM5_0_V2.0.exe
- ULN2003应用电路及中文资料
- ExtPart Windows Server 2003 磁盘扩容工具
- zw_stm8-32-sht-20-30.zip
- 4cbec1e17fae30034cd45625bdbab27d.rar
- 2003 server kb938397 和微软 KB968730 补丁
- 802.11h-2003.pdf
- stm8封装库三维PCB封装库AD用PCB封装库
- N76E003 串口1 ISP升级源代码
- STM8S003-LIS3DH
- STM8L15X参考手册(中文).pdf
- IAR_STM8——FLASH读写-直接操作寄
- ASQ/ANSI Z1.4 2003(R2018).pdf
- windows 2003 2008提权工具
- RNDIS /Ethernet Gadget 驱动 win2003 官方版
- 火狐浏览器firefox for win2003
- N76E003呼吸灯程序PWM中断重设占
评论
共有 条评论