STM32硬件I2C无响应

2020-01-01 17:48发布

这个STM32硬件I2C总是卡在这里,不知道为什么,望大家能够讲解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
SkyGz
2020-01-02 05:01
我前段时间 也碰过,  卡在这

后来可以了

你试试是不是这样




void I2C_Reboot() //重启iic总线
{
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = IIC_PIN_SCL | IIC_PIN_SDA; //  IIC
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    GPIO_ResetBits(GPIOB, IIC_PIN_SCL);
    GPIO_ResetBits(GPIOB, IIC_PIN_SDA);

    GPIO_SetBits(GPIOB, IIC_PIN_SCL);
    GPIO_SetBits(GPIOB , IIC_PIN_SDA);


    GPIO_InitStructure.GPIO_Pin = IIC_PIN_SCL | IIC_PIN_SDA; //  IIC
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

}

---------------------------------------------------------------------

    IIC_Init();  先初始化,  然后 重至IO的2次,  貌似解决了 ,        之前 我删除重至IO的I2C_Reboot() 就出现卡住的情况

    delay_ms(10);
    I2C_Reboot();
    delay_ms(10);
    I2C_Reboot();
    delay_ms(10);
    Init_MPU6050();

一周热门 更多>