STM32 IIC问题
1、卡在while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY));
(1)检测硬件总线空闲时是否都为高电平
(2)先GPIO时钟使能,再I2C时钟使能,然后才配置IIC(注意顺序!!)
2、 卡在while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));
同1
3、卡在while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
一般是由于从设备速度不够快造成的,将STM32主机IIC总线速度适当降一些即可。