⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eeprom.c

📁 很有用的st单片机应用程序
💻 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 + -