工具与软件:
您好!
当尝试从 TLA2528读取 ADC 值时、我疯了。
I2C 单寄存器可进行读取和写入。 我 在寄存器 DATA_CFG 上设置了 FIX_PAT_ENABLE 标志、我希望读取0xA5A、但得到了0xFFA5。
我已将捕获设置为手动模式。 读取状态寄存器返回0x80。
此外、如果我正确理解了7.4.2中的数据表、在一个2字节帧后、接下来的2个字节将提供一个新帧。 在本例中、当我读取4个字节时、我得到0xFFA5FFFF。
在示波器信号中也可以清楚地看到帧上的0xFF。
这是我用于读取通道数据的代码:
uint16_t TLA2528_READ_ONE_CHANNEL_DATA (uint8_t CHANNEL_num)
{
ERR_t ret;
uint16_t 数据区= 0;
uint32_t datareadt = 0;
I2C_cmd_handle_t cmd = i2c_cmd_link_create ();
I2C_MASTER_START (cmd);
I2C_MASTER_WRITE_BYTE (cmd、(m_TLA2528_ADDRESS << 1)| READ_BIT、ACK_CHECK_EN);
I2C_MASTER_READ (cmd、(uint8_t*)&datareadt、2、ACK_CHECK_EN);
I2C_MASTER_STOP (cmd);
REt = i2c_master_cmd_BEGIN (I2C_master_NUM、cmd、100 / portTick_period_MS);
I2C_cmd_link_delete (cmd);
dataread =(uint16_t) datareadt;
返回数据区;
}
如果我 禁用 FIX_PAT_ENABLE、我得到了与输入电压相对应的值、但总是保留在一个字节中、而第二个字节是0xFF。
我的代码出了什么问题?
谢谢!