AnsweredAssumed Answered

I2c issue with STM32F030

Question asked by dbb on Jan 7, 2016
Latest reply on Jan 25, 2016 by Amel N
Hi I am trying to use the I2c module but I run into an issue wherein the TXIS flag check fails. The thing is I don't even see the start or address getting transmitted. I am trying to get one master/ slave connection to work. I use the cube to create an initial project in keil and the do an I2C transmit.
int main(void)
{
  /* MCU Configuration----------------------------------------------------------*/
 
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
 
  /* Configure the system clock */
  SystemClock_Config();
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_I2C1_Init();
  MX_USART1_UART_Init();
 
  uint8_t data[] = {10, 170, 25, 7, 150, 87, 23};
  int ret_value = 0;
 
  while (1)
  {
    ret_value = (int)HAL_I2C_Master_Transmit(&hi2c1, 0, data, 6, 10);
  }
}

And the I2C init code is
void MX_I2C1_Init(void)
{
  hi2c1.Instance = I2C1;
  hi2c1.Init.Timing = 0x2000090E;
  hi2c1.Init.OwnAddress1 = 1;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
  HAL_I2C_Init(&hi2c1);
 
    /**Configure Analogue filter
    */
  HAL_I2CEx_AnalogFilter_Config(&hi2c1, I2C_ANALOGFILTER_ENABLED);
}

Finally with I2C transmit if fails at
if(I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout) != HAL_OK)
{
      if(hi2c->ErrorCode == HAL_I2C_ERROR_AF)
      {
        return HAL_ERROR;
      }
      else
      {
        return HAL_TIMEOUT;
      }
 }


Outcomes