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

2019-08-14 04:16发布

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

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

1504233378(1).jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
huanghan
2019-08-15 05:32
本帖最后由 huanghan 于 2017-9-1 11:47 编辑
怕水的鱼 发表于 2017-9-1 11:16
等待应答的就是第九个时钟啊

没有看出来哪里混乱,是你看了吧,为什么接收应答要那么长时间,应该看这函,是这个函里里Delayus()产生的
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êäèë  
        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);
}

一周热门 更多>