AnsweredAssumed Answered

Problem I2C Freertos driver

Question asked by Daniele Cortellazzi on May 12, 2017
Latest reply on May 18, 2017 by Daniele Cortellazzi



i have to transmit the data to a I2C memory. I have init the I2C0 with:



NVIC_SetPriority(I2C0_IRQn, 6);

error = I2C_RTOS_Init(&i2c0_handle, I2C0, &i2c0_config, CLOCK_GetFreq(I2C0_CLK_SRC));

then i have to write a data so:


data_transfer.slaveAddress = 0x50U;
data_transfer.direction = kI2C_Write;
data_transfer.subaddress = 0;
data_transfer.subaddressSize = 0; = data;
data_transfer.dataSize = n;
data_transfer.flags = kI2C_TransferDefaultFlag;

error = I2C_RTOS_Transfer(&i2c0_handle, &data_transfer);

but nothing happen and the device stop with the function


/* Wait for transfer to finish */
xSemaphoreTake(handle->semaphore, portMAX_DELAY);

in the function I2C_RTOS_Transfer. 


Other question is what are the variable ?

data_transfer.subaddress = 0;
data_transfer.subaddressSize = 0;

are the address of the device to point ?