STM32硬件I2C问题

1.CUBEMX生成代码后I2C总线初始化一直出现 I2C_FLAG_BUSE

1.1 环境:

STM32硬件I2C问题

STM32硬件I2C问题

STM32硬件I2C问题 

 1.2 硬件I2C配置为默认,管脚如下

STM32硬件I2C问题

1.3 时钟等其他 配置完成后生成工程

1.4 添加代码

在i2c.c文件中的的void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)函数中添加如下代码

	__I2C2_FORCE_RESET();
	__I2C2_RELEASE_RESET();

实际如下图

STM32硬件I2C问题

 1.5 完美解决I2C总线置位 I2C_FLAG_BUSY