Skip to main content
emagn
Associate
January 9, 2019
Question

There is a bug in stm32f7xx_hal_i2c.c!!!!!!!!!!!

  • January 9, 2019
  • 0 replies
  • 504 views

There is a bug in stm32f7xx_hal_i2c.c!!!!!!!!!!!

static HAL_StatusTypeDef I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
{
 uint32_t tmpisr = 0U;
 
 if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
 {
 /* Disable TC and TXI interrupts */
 tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
 
 if ((hi2c->State & HAL_I2C_STATE_LISTEN) != HAL_I2C_STATE_LISTEN)
 {
 /* Disable NACK and STOP interrupts */
 tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
 }
 }
 
 if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
 {
 /* Disable TC and RXI interrupts */
 tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
 
 if ((hi2c->State & HAL_I2C_STATE_LISTEN) != HAL_I2C_STATE_LISTEN)
 {
 /* Disable NACK and STOP interrupts */
 tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
 }
 }
 
 if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
 {
 /* Disable ADDR, NACK and STOP interrupts */
 tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
 }
 
 if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT)
 {
 /* Enable ERR and NACK interrupts */
 tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
 }
 
 if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT)
 {
 /* Enable STOP interrupts */
 tmpisr |= I2C_IT_STOPI;
 }
 
 if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT)
 {
 /* Enable TC interrupts */
 tmpisr |= I2C_IT_TCI;
 }
 
 /* Disable interrupts only at the end */
 /* to avoid a breaking situation like at "t" time */
 /* all disable interrupts request are not done */
 __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
 
 return HAL_OK;
}

I2C_Disable_IRQ is a import func in interrupt,but you could see the operation

/* Disable NACK and STOP interrupts */

   tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;

  /* Enable STOP interrupts */

  tmpisr |= I2C_IT_STOPI;

the same code with the differnt means????

if any developer fix it or find somethings new here , please tell me :elmagnificogg@gmail.com,thank you

This topic has been closed for replies.