[其它] c语言写合泰单片机eeprom,合泰单片机EEPROM编程实例

[复制链接]
 楼主| 妇女半边天 发表于 2022-5-16 17:45 | 显示全部楼层 |阅读模式
本帖最后由 werasd 于 2022-5-25 15:08 编辑

以下为合泰单片机EEPROM编程实例,基本上适用于大部分合泰的MCU

.C文件

/***********************************************************

**   Function : fun_eeprom_Write

**   INPUT    : lu8v_addr;lu8v_data

**   OUTPUT   : none

**   NOTE     : none

***********************************************************/

void fun_eeprom_Write(u8 lu8v_addr, u8 lu8v_data)

{

_eea = lu8v_addr;

_eed = lu8v_data;

#if(mac_eeprom_type == mac_eeprom_Short)

_bp     = 1;

_mp1    = 0x40;

_iar1  |= 0x08;

_iar1  |= 0x04;

while(_iar1 & 0x04);

_iar1        &=        0xf7;                                //disable WREN

_bp     = 0;

#endif

//============================================================

#if(mac_eeprom_type == mac_eeprom_Long)

_mp1l = 0x40;

_mp1h = 1;

_iar1        |=        0x8;                                //enable WREN

_iar1        |=        0x4;                                //active write

while(_iar1 & 0x04);                //wait write end

_iar1        &=        0xf7;                                //disable WREN

#endif

}

/***********************************************************

**   Function : fun_eeprom_Read

**   INPUT    : lu8v_addr

**   OUTPUT   : lu8v_eeprom_byte

**   NOTE     : none

***********************************************************/

u8 fun_eeprom_Read(u8 lu8v_addr)

{

u8 lu8v_eeprom_byte;

_eea = lu8v_addr;

#if(mac_eeprom_type == mac_eeprom_Short)

_bp     = 1;

_mp1    = 0x40;

_iar1  |= 0x02;

_iar1  |= 0x01;

while(_iar1 & 0x01);

lu8v_eeprom_byte = _eed;

_iar1  &= 0xfd;

#endif

//============================================================

#if(mac_eeprom_type == mac_eeprom_Long)

_mp1l = 0x40;

_mp1h = 1;

_iar1 |=0x2;                                //enable RDEN

_iar1 |=0x1;                                //active READ

while(_iar1 & 0x01);                //wait read end

lu8v_eeprom_byte = _eed;

_iar1 &=        0xfD;                                //disable RDEN

#endif

return lu8v_eeprom_byte;

}

.h文件

#ifndef _eeprom_h_

#define _eeprom_h_

/********************************************************************

NOTE:無需修改

********************************************************************/

#define        mac_eeprom_Long                1

#define        mac_eeprom_Short        0

#define mac_eeprom_type                mac_Eeprom_Short

/********************************************************************

Function:

********************************************************************/

void fun_eeprom_Write(u8 lu8v_addr, u8 lu8v_data);

u8 fun_eeprom_Read(u8 lu8v_addr);

#endif


u1011 发表于 2022-5-16 17:59 | 显示全部楼层
楼主不要灌水啊,这里是HT32论坛,您的描述不成立。
海滨消消 发表于 2022-5-19 16:25 来自手机 | 显示全部楼层
写的啥啊
andygirl 发表于 2022-5-19 20:45 | 显示全部楼层
怎么还都是下划线
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

124

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部