Executing HAL_I2C_Master_Transmit_IT function holds SCL low.
Hi,
I found in my search there is a similar question that went unanswered. This may be a newb question, but I'm stuck on it.
What I have found is that when executing HAL_I2C_Master_Transmit(), the data transfer happens as expected. (I happen to have green LEDs hanging on GPIO). When I execute HAL_I2C_Master_Transmit_IT(), only the 7-bit address is sent, and the Master (this program) continues to hold the SCL line low.
If someone could explain what I am doing wrong with the HAL_I2C_Master_Transmit_IT() program, that would be much appreciated!
//Turn on the two green LEDs on the LTC4306's GPIO
data[0] = 0x01;
data[1] = 0b00001111;
status = HAL_I2C_Master_Transmit(&hi2c1, ltc4306_Address, data, 2, 1 );
//Turn off the two green LEDs on the LTC4306's GPIO
data[0] = 0x01;
data[1] = 0b00111111;
status = HAL_I2C_Master_Transmit(&hi2c1, ltc4306_Address, data, 2, 1 );
//Turn on the two green LEDs on the LTC4306's GPIO
data[0] = 0x01;
data[1] = 0b00001111;
status = HAL_I2C_Master_Transmit_IT(&hi2c1, ltc4306_Address, data, 2 ); //This returns HAL_OK... but the master (this program) is holding SCL low after having transmitted the 7-bit address.
HAL_I2C_MasterTxCpltCallback(&hi2c1); // SCL still being held low after execution of this line. Doesn't seem to help. 