请教一下,如何用CH341去做应答检测呀?

现在设备地址存在两个,一个是0x1A,一个是0x1B,有什么方案可以去做应答位的检测吗?

您好,可参考如下blog:https://blog.csdn.net/WCH_TechGroup/article/details/130932558?

使用如下接口函数可实现:


BOOL WINAPI IIC_OutByteCheckAck( // 输出一字节数据并检查应答是否有效

ULONG iIndex, // 指定CH341设备序号

UCHAR iOutByte ) // 准备写出的数据

{

UCHAR mBuffer[ mCH341_PACKET_LENGTH ];

ULONG mLength, mInLen;

mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码

mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_OUT; // 输出数据,位5-位0为长度,0长度则只发送一个字节并返回应答

mBuffer[ 2 ] = iOutByte; // 数据

mBuffer[ 3 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束

mLength = 4;

mInLen = 0;

if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入

if ( mInLen && ( mBuffer[ mInLen - 1 ] & 0x80 ) == 0 ) return( TRUE ); // 返回的数据的位7代表ACK应答位,ACK=0有效

}

return( FALSE );




只有登录才能回复,可以选择微信账号登录