工具/软件:TI-RTOS
尊敬的所有人:
我正在使用 SmartRF06评估板、并使用它上传测试代码来从温度和湿度传感器(SI7006-A20)读取数据。
问题是、当我运行代码时、要初始化 i2c 传输、会出现无法传输的消息。 消息是 System_printf()发出的“总线故障”;
#define SI7006_A20_ADDR 0x40 //湿度和温度传感器地址
//本地
I2C_Handle i2cHandle;
I2C_Params 参数;
I2C_Transaction i2cTrans;
uint8_t i = 0;
uint8_t rxBuf[2];//接收缓冲区
uint8_t txBuf = 0xF3;//发送缓冲器
//配置 I2C 参数。
I2C_PARAMS_INIT (params);
params.bitrate = I2C_400kHz;
params.transferMode = I2C_MODE_BLOCKING;
//初始化主 I2C 事务结构
i2cTrans.writeCount = 2;
i2cTrans.writeBuf =&txBuf;
i2cTrans.ReadCount = 2;
i2cTrans.readBuf =&rxBuf;
i2cTrans.slaveAddress = SI7006_A20_ADDR;
//打开 I2C
i2cHandle = I2C_open (Board_I2C、params);
if (i2cHandle ==空)
{
System_abort ("在任务1上初始化 I2C 时出错\n");
}
其他
{
system_printf ("I2C 已初始化! 在任务1上\n");
}
system_flush();
if (I2C_transfer (i2cHandle、&i2cTrans)){
System_printf ("SUCCES\n");
system_flush();
}
否则{
System_printf ("bus fault\n");
system_flush();}
}
您知道什么是错误吗? 为什么 I2C_transfer 返回"0"-错误?
谢谢你


