Browse Source

优化温度读取

master
zhaohe 4 months ago
parent
commit
1580884bda
  1. 23
      sdk/components/sensors/tmp117/tmp117.cpp

23
sdk/components/sensors/tmp117/tmp117.cpp

@ -23,14 +23,17 @@ void TMP117::initializate(I2C_HandleTypeDef* i2c, i2c_reset_cb_t i2cResetCb, ID_
m_lastCallStatus = HAL_OK; m_lastCallStatus = HAL_OK;
m_i2cResetCb = i2cResetCb; m_i2cResetCb = i2cResetCb;
setConfiguration(0x0220);
setTemperatureOffset(0x0000);
if (!m_isError) setConfiguration(0x0220);
if (!m_isError) setTemperatureOffset(0x0000);
if (!m_isError) getTemperature();
m_isOnlineWhenPowerOn = isOnline();
m_isOnlineWhenPowerOn = !m_isError;
ZLOGI(TAG, "TMP117 %d initialized..., isonline:%d", m_id, m_isOnlineWhenPowerOn);
} }
bool TMP117::isOnline() { bool TMP117::isOnline() {
getTemperature(); getTemperature();
return m_isError;
return !m_isError;
} }
bool TMP117::isError() { return m_isError; } bool TMP117::isError() { return m_isError; }
@ -51,13 +54,11 @@ const char* TMP117::getLastCallStatusString() {
float TMP117::getTemperature() { float TMP117::getTemperature() {
uint16_t ret = 0; uint16_t ret = 0;
bool suc = readreg(TemperatureRegister, (uint16_t*)&ret); bool suc = readreg(TemperatureRegister, (uint16_t*)&ret);
if (!suc) {
m_isError = true;
if (suc) {
return ret * 0.0078125;
} else { } else {
m_isError = false;
return 0;
} }
return ret * 0.0078125;
} }
uint16_t TMP117::getConfiguration() { uint16_t TMP117::getConfiguration() {
uint16_t ret = 0; uint16_t ret = 0;
@ -87,9 +88,10 @@ bool TMP117::writereg(uint8_t regoff, uint16_t data) {
* I2C来解决这个问题 * I2C来解决这个问题
*/ */
if (m_i2cResetCb) m_i2cResetCb(); if (m_i2cResetCb) m_i2cResetCb();
ZLOGI(TAG, "TMP117 %d WRITE REG FAIL", m_id);
ZLOGI(TAG, "TMP117 %d WRITE %d REG FAIL", m_id, regoff);
osDelay(100); osDelay(100);
} }
m_isError = !suc;
osDelay(1); osDelay(1);
return suc; return suc;
} }
@ -107,6 +109,7 @@ bool TMP117::readreg(uint8_t regoff, uint16_t* data) {
ZLOGI(TAG, "TMP117 %d WRITE REG FAIL", m_id); ZLOGI(TAG, "TMP117 %d WRITE REG FAIL", m_id);
osDelay(100); osDelay(100);
} }
m_isError = !suc;
osDelay(1); osDelay(1);
return suc; return suc;
} }

Loading…
Cancel
Save