STM32F0 模拟IIC 从机应答时序混乱是什么原因

2019-08-14 04:16发布

本帖最后由 怕水的鱼 于 2017-9-1 10:54 编辑

最近在搞电能芯片BQ32Z100-G1这个芯片 需要用IIC通信 用的是模拟IIC 发送数据时序正常 等待应答时时序很混乱第九个时钟脉冲保持的时间很乱  用的是原子哥的代码 不知道哪出现的问题 请教各位大神看看 谢谢了

1504233378(1).jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
huanghan
2019-08-15 13:17
怕水的鱼 发表于 2017-9-1 12:46
你看那个0x08那个的应答 时钟高电平只持续了很短的时间不知道为什么 应答时总是影响我的时钟总线

uint8_t IIC_Wait_Ack(void)
{
        uint8_t ack;
        uint32_t ucErrTime=0;
        
        IIC_SDA_ON;
        Delayus(500);         //
        IIC_SCL_ON;
        Delayus(130);         
  
       SDA_IN();      //SDAéèÖÃÎaêäèë  //0x08那个的应答是这里产生的
        while(IIC_SDA_IN)
        {
                ucErrTime++;
                if(ucErrTime>2500)
                {
                        //IIC_Stop();
                        return 1;
                }
        }

        IIC_SCL_OFF;//ê±Öóêä3ö0            
        Delayus(130);         
        return 0;  
//        ack = (IIC_SDA_IN);                       // Read ACK state from Slave
//  IIC_SCL_OFF;                                    // SCL = 0
//  if (ack)                                  // Return ACK state to calling app
//    return (1);
//  else
//    return (0);
}

一周热门 更多>