This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/HDC1080:使用 Linux 中的 MRAA 库访问温度和湿度寄存器

Guru**** 2562120 points
Other Parts Discussed in Thread: HDC1080

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/638862/linux-hdc1080-accessing-temperature-and-humidity-registers-using-mraa-library-in-linux

器件型号:HDC1080

工具/软件:Linux

这是我的应用程序中当前运行的代码段。

我们正在设计中使用 MRAA I2C 库。

(小部分

//打开 I2C 上下文
SensorI2cBus = mraa_i2c_init_raw (sensor_bus); //sensor_bus = 0

//配置 hdc1080器件
状态= mraa_i2c_address (SensorI2cBus、HDC1080_ADDR); //HDC1080_ADDR = 0x40
if (MRAA_SUCCESS!=状态)

//在总线上设置设备地址失败
返回 false;

状态= mraa_i2c_write_word_data (SensorI2cBus、default_CFG、CFG_REG); /default_CFG = 0x1000
if (MRAA_SUCCESS!=状态)

//写入配置数据失败
返回 false;

状态= mraa_i2c_address (SensorI2cBus、HDC1080/ADDR);

int nData = mraa_i2c_read_word_data (SensorI2cBus、0xFE);
nData = mraa_i2c_read_word_data (SensorI2cBus、DEV_ID_REG);
nData = mraa_i2c_read_word_data (SensorI2cBus、SN_REG_1);
nData = mraa_i2c_read_word_data (SensorI2cBus、SN_REG_2);
nData = mraa_i2c_read_word_data (SensorI2cBus、SN_REG_3);

//如果我调用此函数,则下一行返回状态变量中的错误。

状态= mraa_i2c_write_byte_data (SensorI2cBus、0x00、TEMP_REG);

/n 数据始终为-1 (无数据读取)  
nData = mraa_i2c_read_word_data (SensorI2cBus、TEMP_REG);

(小部分

我可以毫无问题地读取 MFG_ID、DEV_ID 和 SN 寄存器。  但是、我始终会遇到尝试读取温度或湿度的错误。  在读取温度寄存器之前、我在使用和不使用写入函数的情况下都尝试了这种方法。  我已经在 GDB 中使用单步调试完成了这一操作、因此我确定在对 Temp Reg.  这里出了什么问题?  我在这里尝试了许多不同的东西,但没有取得任何进展。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、
    TI 温度和湿度传感器团队不会为我们的器件生成或支持 Linux 驱动程序。 我们为 Linux 社区开发的一些驱动程序提供了链接、我们对此表示感谢。
    请联系支持该库的人员。

    我们确实提供了有关如何将 HDC1080器件与 Arduino 连接的示例软件、请使用以下链接:
    www.ti.com/.../toolssoftware

    此致、
    何塞