EEPROM连续写多个字节函数接口

EEPROM连续写多个字节函数接口

void ee_24c256_writebytes(u16 write_addr, char* pwrite_buff, u16 writebytes)
{
	u8   write_len,page_offset;
	
	while(writebytes > 0)
	{
		page_offset = EE_PAGESIZE - (write_addr % EE_PAGESIZE); /*EE_PAGESIZE为页大小,如24c256为64*/
		write_len   = writebytes > page_offset ? page_offset : writebytes;
		i2c_24c256_write(write_addr,pwrite_buff, write_len);		  /*写一页函数*/
		writebytes   = writebytes - write_len;
		if(writebytes > 0)
		{
			pwrite_buff = pwrite_buff + write_len;
			write_addr  = write_addr + write_len;
			i2c_24C256_waitstandby(0);	 	/*页写判忙,*/
		}
	}
}

注:EEPROM的一次写操作不能跨页。

你可能感兴趣的:(ARM/STM32)