📄 epr.c
字号:
#include "stm32f10x_lib.h"
#include "I2C.h"
#define EEPROM_READ_ADDRESS 0xA1
#define EEPROM_WRITE_ADDRESS 0xA0
void EEPR_Write_Commend(u8 Terminal_Address,u8* Buffer,u8 Total_Bytes);
void EEPR_Read_Commend(u8 DATA_Address,u8* Buffer_Address,u8 Total_Bytes);
u32 EEPR_ByteRead_Commend(u8 DATA_Address);
extern void Delay_XMs(u8 Dly);
/**********************************************************************************
Function name:
Funtion:
input:
output:
note:
*********************************************************************************/
void EEPR_Write_Commend(u8 Terminal_Address,u8* Buffer,u8 Total_Bytes)
{
u8 y=0;
I2C_Start();
Address_Sending(Transmitter,0,EEPROM_WRITE_ADDRESS, Addring_Mode_7);
//send address byte to be write to
I2C_SendByte(Terminal_Address);
while(y<Total_Bytes)
{
I2C_SendByte(*(Buffer++));
y++;
Delay_XMs(30);
}
I2C_Stop_Write();
}
/**********************************************************************************
Function name:EEPR_Read_Commend
Funtion:read data from the EEProm`s appointed address.
input: DATA_Address: Target address you may read from
*Buffer_Address:buffer for the read data
Total_Bytes:How many bytes you want to read from the eeprom.
output:none
note:
*********************************************************************************/
void EEPR_Read_Commend(u8 DATA_Address,u8* Buffer_Address,u8 Total_Bytes)
{
u8 x=0;
/****************Send wanted data`s address first *************************/
I2C_Start();
Address_Sending(Transmitter,0,EEPROM_WRITE_ADDRESS, Addring_Mode_7);
I2C_SendByte(DATA_Address) ;
/***************read the wanted data*****************************************/
I2C_Start();
Address_Sending(Reciver,0,EEPROM_READ_ADDRESS, Addring_Mode_7);
while (x<Total_Bytes)
{
*(Buffer_Address++)= I2C_ReciveByte( );
x++;
Delay_XMs(30);
}
I2C_Stop_Read();
}
u32 EEPR_ByteRead_Commend(u8 DATA_Address)
{
u32 x=0;
/****************Send wanted data`s address first *************************/
I2C_Start();
Address_Sending(Transmitter,0,EEPROM_WRITE_ADDRESS, Addring_Mode_7);
I2C_SendByte(DATA_Address) ;
/***************read the wanted data*****************************************/
I2C_Start();
Address_Sending(Reciver,0,EEPROM_READ_ADDRESS, Addring_Mode_7);
x= (u32) I2C_ReciveByte( );
Delay_XMs(30);
I2C_Stop_Read();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -