/*
* 函数名称:plugin_xx24cxx_write_len_byte
* 功能描述:写入长度为len的数据,用于写入16bit或者32bit的数据
* 参 数: write_address: EEPROM内部要写入的寄存器地址
* data: 要写入的数据地址
* len:数据长度:2、4(16位、32位)
* 返回数值:错误类型(TE_MK_STA)
*/
/****************************************************************************/
TE_MK_STA plugin_xx24cxx_write_len_byte(uint16_t write_address, uint32_t data, uint8_t len)
/****************************************************************************/
{
for(uint8_t i = 0;i<len;i++)
{
plugin_xx24cxx_write_byte(write_address+i,(data>>(8*i))&0xff);
hal_xx24cxx_delay_ms(EEPROM_WRITE_TIME); //EEPROM每次写入数据至少需要3ms时间
}
return MK_OK;
}
/*
* 函数名称:plugin_xx24cxx_read_len_byte
* 功能描述:读取长度为len的数据,用于读取16bit或者32bit的数据
* 参 数:read_address: EEPROM内部要写入的寄存器地址
* len:数据长度:2、4(16位、32位)
* 返回数值:要读取的数据(32位)
*/
/****************************************************************************/
uint32_t plugin_xx24cxx_read_len_byte(uint16_t read_address, uint8_t len)
/****************************************************************************/
{
uint32_t temp = 0;
for(uint8_t i = 0;i<len;i++)
{
temp<<= 8;
temp+= plugin_xx24cxx_read_byte(read_address+len-i-1);
}
return temp;
}
IIC EEPROM实现16位、32位字节写入的方法
最新推荐文章于 2024-05-01 05:20:41 发布