CH582F中I2C例程卡死

#if(I2C_MODE == HOST_MODE)

    PRINT("IIC Host mode\r\n");

    I2C_Init(I2C_Mode_I2C, 400000, I2C_DutyCycle_2, I2C_Ack_Enable, I2C_AckAddr_7bit, MASTER_ADDR);

    while(I2C_GetFlagStatus(I2C_FLAG_BUSY) != RESET);

    PRINT("1\r\n");

例程没有改动,下载进去后就一直卡在了 while(I2C_GetFlagStatus(I2C_FLAG_BUSY) != RESET);,这是什么原因?

问题找到了,现在有个新问题。

int i2c_write_to(uint8_t addr_7bit, const uint8_t *data, uint8_t length,

        uint8_t wait, uint8_t send_stop)

int i2c_read_from(uint8_t addr_7bit, uint8_t *data, uint8_t length,

        uint8_t send_stop, int timeout)

这两个函数有什么用?我这边用逻辑分析仪抓波形,并没有抓到这两个函数有实际作用。


您好,这两个函数是使用IIC中断的方式读写IIC从机。可以注释掉例程中第64~88行代码,用逻辑分析仪抓波形即可抓到由这两行代码产生的波形。


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