没有等待
void Bsp_I2C0ReadDevice(uint16_t deviceaddr, uint16_t addr, uint8_t num)
{
I2C_0.State = I2C_START;
I2C_0.DeviceAddr = deviceaddr;
I2C_0.RegAddr = addr;
I2C_0.Rx_Cnt = num;
I2C_0.Cnt = 0;
/* Open I2C0, and set clock = 100Kbps */
DrvI2C_Open(I2C_PORT0, 100000);
/* Get I2C0 clock */
uint32_t data = DrvI2C_GetClockFreq(I2C_PORT0);
printf("\r\nI2C0 clock %d Hz", (uint32_t)data);
/* Enable I2C0 interrupt and set corresponding NVIC bit */
DrvI2C_EnableInt(I2C_PORT0);
/* Uninstall I2C0 call back function for write data to slave */
DrvI2C_UninstallCallBack(I2C_PORT0, I2CFUNC);
/* Install I2C0 call back function for read data from slave */
DrvI2C_InstallCallback(I2C_PORT0, I2CFUNC, I2C0_Callback_Rx);
DrvI2C_Ctrl(I2C_PORT0, 1, 0, 0); //start
}
|