代码太多了,插入不完全。
int MLX90640_GetframeData(uint8_t slaveAddr uint16_t *frameData) { uint16_t dataReady = 1; uint16_t controlRegister1; uint16_t statusRegister; int error = 1; uint8_t cnt = 0; dataReady = 0; while(dataReady == 0) { error = MLX90640_I2CRead(slaveAddr 0x8000 1 &statusRegister);//A new data is available in RAM or not if(error != 0) { return error; } dataReady = statusRegister & 0x0008; } while(dataReady != 0 && cnt < 5) { error = MLX90640_I2CWrite(slaveAddr 0x8000 0x0030);//? if(error == -1) { return error; } error = MLX90640_I2CRead(slaveAddr 0x0400 832 frameData); if(error != 0) { return error; } error = MLX90640_I2CRead(slaveAddr 0x8000 1 &statusRegister); if(error != 0) { return error; } dataReady = statusRegister & 0x0008; cnt = cnt + 1; } if(cnt > 4) { return -8; } error = MLX90640_I2CRead(slaveAddr 0x800D 1 &controlRegister1); frameData[832] = controlRegister1; frameData[833] = statusRegister & 0x0001; if(error != 0) { return error; } return frameData[833]; }