tca6424a 3组port口设置为输出,发送主机写地址后,写命令0x05设置第二组port口为输出,接着写数据,输出电平不会变化。。。。但是设置为输入时,能采集到外部电平变化。从机地址是0x44
有了解的,能给点建议吗????
void tca6424_writeData(uint8_t slaveAddr, uint8_t sendData)
{ //开始信号
I2C_GenerateSTART(TCA6424_I2C_BASE_PTR);
//发送从机地址
I2C_Send7bitAddress(TCA6424_I2C_BASE_PTR, slaveAddr, I2C_MASTER_WRITE);
I2C_WaitAck(TCA6424_I2C_BASE_PTR);
I2C_SetMasterMode(TCA6424_I2C_BASE_PTR,I2C_MASTER_WRITE);
//发送功能码,设置输出
I2C_SendData(TCA6424_I2C_BASE_PTR,0x04);
I2C_WaitAck(TCA6424_I2C_BASE_PTR);
// //写数据
I2C_SendData(TCA6424_I2C_BASE_PTR,sendData);
I2C_WaitAck(TCA6424_I2C_BASE_PTR);
//停止I2C
I2C_GenerateSTOP(TCA6424_I2C_BASE_PTR);
}
Sunny Qin:
您好,您的代码都是标识符,我们无法看出写进去的数据,建议您通过示波器或者逻辑分析观察您的写入时序,然后对照datasheet中的图24,看时序是否正确。