ch582 i2c遇到问题

  只能运行到1  发送设备地址0x30 逻辑分析仪检测到的确是0x18

#define NorthAdderss  0x30 

I2C_Init(I2C_Mode_I2C, 10000, I2C_DutyCycle_16_9, I2C_Ack_Enable, I2C_AckAddr_7bit, 0);

  while(I2C_GetFlagStatus(I2C_FLAG_BUSY));
    PRINT("IIC start\r\n");
       I2C_GenerateSTART(ENABLE);
            while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT));
            I2C_Send7bitAddress(NorthAdderss, I2C_Direction_Transmitter);
            PRINT("1 \r\n");
            while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
            PRINT("2 \r\n");
            I2C_SendData(0x39);
            while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
            PRINT("3 \r\n");i2c.png

您好,逻辑分析仪显示从机设备没有响应应答位,只能运行到‘1’是正常的。

检查从机有没有在正常工作,用其他MCU或者上位机有成功驱动过从机吗;信号线上有没有加上拉电阻到3.3V,可能缺少上拉导致从机未能识别信号,以从机手册要求为准。


只有登录才能回复,可以选择微信账号登录