工具/软件:Code Composer Studio
大家好、
我目前正在尝试使用 BLE5向 CC2640R2 Launchpad 的简单 BLE 外设示例项目添加 CO2传感器(Tellaire T6713)。 我能够从 SensorTag 应用中实现天气传感器(BMP280)、但没有使用 I2C 和 Modbus 请求的 CO2传感器示例。
我使用 了 Sensor Tag 项目中的一些 bsp_i2c 命令、但 CO2传感器有问题。 我应该执行 Modbus 请求。 以下是传感器数据表中包含的内容。
Modbus 请求(I2C)(主发送器/从接收器)
‘04'H 函数代码
‘13'H 起始地址(MSB)
‘8'H 起始地址(LSB)
‘00'H 要读取的输入寄存器(MSB)
‘01'H 读取输入寄存器(LSB)
Modbus 响应(I2C)(主接收器/从发送器)
‘04'H 函数代码
‘02'H 字节计数
16位数据的 XX MSB
16位数据的 XX LSB
我不知道如何使用 sensorTag 项目的 sensor.c 文件中存在的 sensorReadReg 函数访问数据注册表。
非常感谢您的支持。 欢迎提供任何帮助。
再次感谢。
下面是我现在使用的部分内容:
/*********
*@fn sensorT6713Read
*
*@简要读取结果寄存器
*
*@param Buffer 以存储数据
*
如果数据有效、*@返回 true
秘书长的报告 /
bool sensorT6713Read (uint16_t * val)
{
bool 成功;
uint16_t val;
如果(!sensor_select())
{
返回 false;
}
if (成功)
{
Success = sensorReadReg (REG_Result、(uint8_t*)&val、data_length);
}
sensor_deleset();
返回成功;
}
/*********
*@fn sensorReadReg
*
*@简述此函数实现 I2C 协议以从传感器读取数据。
*在调用此例程之前必须选择传感器。
*
*@param addr -要读取的寄存器
*@param pBuf -指向用于放置数据的缓冲区的指针
*@param nbytes -要读取的字节数
*
如果接收到所需的字节数、*@返回 true
秘书长的报告 /
bool sensorReadReg (uint8_t addr、uint8_t * pBuf、uint8_t nbytes)
{
返回 bspI2cWriteRead (&addr、1、pBuf、nbytes);
}