使用 ADS7828 IC 时、遇到了"读取数据"问题。 下面显示了我如何 写入 固件读取 CH1值,(下面显示的部分代码在我的固件, I2C 启动和其他开始代码运行良好。
uint8_t txBuffer2[1];
uint8_t rxBuffer2[2];
txBuffer2[0]= 0x90; // 写入地址字节
uint8_t txBuffer3[1];
uint8_t rxBuffer3[2];
txBuffer3[0]= 0xC4; // 命令 字节用于选择 CH1、 内部基准关闭和 A/D 转换器开启 (不确定最后4位设置)
uint8_t txBuffer4[1];
uint8_t rxBuffer4[2];
txBuffer4[0]= 0x91;//用于 读取的地址字节
while (1){
i2cTransaction.targetAddress = 0x48;
i2cTransaction.writeBuf = txBuffer2;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer2;
i2cTransaction.ReadCount = 0;
如果(I2C_transfer (i2c、&i2cTransaction))
{
}
否则
{
}
i2cTransaction.targetAddress = 0x48;
i2cTransaction.writeBuf = txBuffer3;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer3;
i2cTransaction.ReadCount = 0;
如果(I2C_transfer (i2c、&i2cTransaction))
{
}
否则
{
}
i2cTransaction.targetAddress = 0x48;
i2cTransaction.writeBuf = txBuffer4;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer4;
i2cTransaction.ReadCount = 2;
如果(I2C_transfer (i2c、&i2cTransaction))
{
}
否则
{
}
}
但我总是收到 0x0F+ACK 和0xFF+NACK 。 那么、问题是什么呢? 如何解决该问题、我需要读取 CH1电压读数。 当 I 变量 CH1电压始终回复 0x0F+ACK 和0xFF+NACK 时。 没有任何差分结果。