|
发表于 2011-8-19 12:03:44
|
显示全部楼层
我的MS5607只能读出C0~C6,ADC值一直读不出来。不知什么原因?
uint8_t getBarometerDataBatchRead( uint8_t address7, uint8_t device_start_address, uint8_t* rxBuffer, uint8_t bytesToRead )
{
int i;
uint8_t returnval;
//Send start condition and address byte
returnval = i2cTransmitByte( 0XEE, I2C_SEND_START, I2C_NO_STOP );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
// Send start address for read
returnval = i2cTransmitByte( 0X40, I2C_NO_START, I2C_SEND_STOP );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
DelayMs( 10 );
// Send new start condition and initiate read
returnval = i2cTransmitByte( 0XEE, I2C_SEND_START, I2C_NO_STOP );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
returnval = i2cTransmitByte( 0X00, I2C_NO_START, I2C_SEND_STOP );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
returnval = i2cTransmitByte( 0XEF, I2C_SEND_START, I2C_NO_STOP );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
// Start read
rxBuffer[0] = i2cReadByte( I2C_ACK_ENABLE, I2C_NO_STOP, &returnval );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
rxBuffer[1] = i2cReadByte( I2C_ACK_ENABLE, I2C_NO_STOP, &returnval );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
// Read the last byte
rxBuffer[2] = i2cReadByte( I2C_ACK_DISABLE, I2C_SEND_STOP, &returnval );
if( returnval != I2C_SUCCESS )
{
return i2cFailed(returnval);
}
ADC[0]= (g_i2cRxBuf[0] << 16) | g_i2cRxBuf[1]<<8| g_i2cRxBuf[2];
return I2C_SUCCESS;
} |
|