一,写入,直接调用hal库中的HAL_I2C_Mem_Write函数
void I2C_store_user(void)
{
if (HAL_I2C_Mem_Write(&hi2c1, 0xA0, 0, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer[0]),8, 1000) == HAL_OK)
{
HAL_I2C_Mem_Write(&hi2c1, 0xA0, 8, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer[8]),8, 1000);
HAL_I2C_Mem_Write(&hi2c1, 0xA0, 16, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer[16]),8, 1000);
HAL_I2C_Mem_Write(&hi2c1, 0xA0, 24, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer[24]),8, 1000);
HAL_I2C_Mem_Write(&hi2c1, 0xA0, 32, I2C_MEMADD_SIZE_8BIT,&(I2C_Buffer[32]),8, 1000);
}
}
二,读取,也调用hal库中的函数HAL_I2C_Mem_Read
HAL_I2C_Mem_Read(&hi2c1, 0xA1, 0, I2C_MEMADD_SIZE_8BIT,I2C_Buffer,40, 1000);
至于为啥写入是8个8个的存,读取是一次读40个;能不能一次写入40个?有待验证,应该是没问题的。