CH582 硬件IIC从机的工作流程是怎样的,I2C_Init之后的下面这段是为了检测主机有没有写数据过来嘛

    while(!I2C_CheckEvent(I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED));

    while(i < 6)
    {
        if(I2C_GetFlagStatus(I2C_FLAG_RXNE) != RESET)
        {
            RxData[i] = I2C_ReceiveData();
            i++;
        }
    }

如果不需要开机就做检测连接,是否可以跳过,直接调用下列初始化函数

    struct i2c_slave_cb slave_user = {
        .on_receive = i2c_on_slave_receive_user,
        .on_transmit = i2c_on_slave_transmit_user,
    };

    i2c_app_init(SLAVE_ADDR);
    i2c_slave_cb_register(&slave_user);

还有例程如何实现从不同的地址读写数据,做到IIC从机不同寄存器地址处读写的效果