📄 eeprom.c
字号:
/******************************************************************************
EEPROM子程序(以下子程序参考或采用ST公司MCD Application Team提供的相关子程序)
******************************************************************************/
#include "ST7lib_config.h" /* 芯片选择 */
#include "EEPROM_hr.h" /* 常数声明 */
#include "EEPROM.h" /* EEPROM函数原型定义 */
/*-----------------------------------------------------------------------------
子程序名称 : EEPROM_Read
输入 : *PtrToUsrBuffer - 用户地址,存贮数据的地方
NbOfBytes - 从EEPROM读出数据的字节数
*PtrToE2Buffer - EEPROM内存地址,读取数据的地址
输出 : 无
描述 : 从EEPROM读数据并将数据存放到用户缓存器
注释 : 无
-----------------------------------------------------------------------------*/
void EEPROM_Read (unsigned char * PtrToUsrBuffer, unsigned char NbOfBytes,
@near unsigned char * PtrToE2Buffer)
{
unsigned char Temp ;
EECSR &= EEPROM_DEFAULT; /* 使能读操作 */
for (Temp = 0; Temp < NbOfBytes; Temp ++)
{ /* 数据从EEPROM存放到用户缓存器 */
(*(PtrToUsrBuffer+ Temp )) = (*(PtrToE2Buffer+ Temp ));
}
}
/*-----------------------------------------------------------------------------
子程序名称 : EEPROM_Write
输入 : *PtrToUsrBuffer - 用户地址,存贮有数据的地方
NbOfBytes - 要写到EEPROM中的字节数
*PtrToE2Buffer - EEPROM内存地址,写入数据的地址
输出 : 无
描述 : 从缓存器写数据到EEPROM
注释 : 无
-----------------------------------------------------------------------------*/
void EEPROM_Write (unsigned char * PtrToUsrBuffer, unsigned char NbOfBytes,
@near unsigned char * PtrToE2Buffer)
{
unsigned char Temp ;
EECSR |=WRITE_ENABLE; /* 使能写模式 */
EECSR &=PROG_ENABLE; /* 初始化写状态标志 */
for (Temp = 0; Temp < NbOfBytes; Temp ++)
{ /* 从缓存器写数据到EEPROM */
(*(PtrToE2Buffer + Temp)) = (*(PtrToUsrBuffer+ Temp));
}
}
/*-----------------------------------------------------------------------------
子程序名称 : EEPROM_Programming
输入 : 无
输出 : PROG_COMPLETE - 如果烧写完成
PROG_PROGRESS - 如果烧写未完成
描述 : 数据从缓存器写到EEPROM并且返回烧写的状态
注释 : 该函数可以循环,直到烧写完毕
-----------------------------------------------------------------------------*/
Prog_Status EEPROM_Programming (void)
{
if ((EECSR & WRITE_ENABLE) )
{ /* 当写模式选择时,使能烧写状态位 */
if(!(EECSR & PROG_PROGRESS))
{
EECSR |= PROG_PROGRESS;
}
return (EEPROM_PROG_PROGRESS) ;
}
else
{ /* 烧写完成,或者尚未开始 */
return (EEPROM_PROG_COMPLETE) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -