BitStatus IIC_BUSY(void)
{
BitStatus bit_status;
bit_status=(I2C->SR3&0X02)>>1;
if(bit_status==1) //忙
{
iic_bucy_count++;
if(iic_bucy_count>5) //计算忙的次数
I2C->CR2|=0X80; //软件复位
if(iic_bucy_count>100) //计算忙的次数
{
I2C->CR1&=~0X01; // PE off i2C
iic_bucy_count=0;
}
return 1;
这样可以解决一直处于总线已经为高电平 ,还为忙的情况 ;
|