STM8在通信时主机死机问题

2019-07-14 16:59发布

最近使用硬件IIC通信,主机经常死在
while(I2C_SR3 & 0x02);             //等待总线空闲
此时用示波器测量DATA和CLK引脚,居然都是高电平,太诡异了。
哪位大神能给个解释?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
richips
2019-07-15 02:10

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;


这样可以解决一直处于总线已经为高电平   ,还为忙的情况  ;


一周热门 更多>