2021-08-09 10:32 PM
Code is missing:
typedef struct
{
__IO uint32_t CR1; /*!< I2C Control register 1, Address offset: 0x00 */
__IO uint32_t CR2; /*!< I2C Control register 2, Address offset: 0x04 */
__IO uint32_t OAR1; /*!< I2C Own address register 1, Address offset: 0x08 */
__IO uint32_t OAR2; /*!< I2C Own address register 2, Address offset: 0x0C */
__IO uint32_t DR; /*!< I2C Data register, Address offset: 0x10 */
__IO uint32_t SR1; /*!< I2C Status register 1, Address offset: 0x14 */
__IO uint32_t SR2; /*!< I2C Status register 2, Address offset: 0x18 */
__IO uint32_t CCR; /*!< I2C Clock control register, Address offset: 0x1C */
__IO uint32_t TRISE; /*!< I2C TRISE register, Address offset: 0x20 */
__IO uint32_t FLTR; /*!< I2C FLTR register, Address offset: 0x24 */ // Code is missing!
} I2C_TypeDef;
So, HAL_I2CEx_ConfigAnalogFilter() Function Occur Error:
if (hi2c->State == HAL_I2C_STATE_READY)
{
hi2c->State = HAL_I2C_STATE_BUSY;
/* Disable the selected I2C peripheral */
__HAL_I2C_DISABLE(hi2c);
/* Reset I2Cx ANOFF bit */
hi2c->Instance->FLTR &= ~(I2C_FLTR_ANOFF); // error: No Member
/* Disable the analog filter */
hi2c->Instance->FLTR |= AnalogFilter; // error: No Member
__HAL_I2C_ENABLE(hi2c);
hi2c->State = HAL_I2C_STATE_READY;
return HAL_OK;
}
Solved! Go to Solution.
2021-08-17 6:56 AM
Hi @YSim.1 ,
As mentioned in RM0090, the I2C_FLTR is available on STM32F42xxx and STM32F43xxx only.
So there is no analog filter for I2C of STM32F405. This is said, there is no need to use the function HAL_I2CEx_ConfigAnalogFilter().
Are you adding it by yourself on your code, or is it generated by some tool?
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2021-08-17 6:56 AM
Hi @YSim.1 ,
As mentioned in RM0090, the I2C_FLTR is available on STM32F42xxx and STM32F43xxx only.
So there is no analog filter for I2C of STM32F405. This is said, there is no need to use the function HAL_I2CEx_ConfigAnalogFilter().
Are you adding it by yourself on your code, or is it generated by some tool?
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.