请问,用CH376并行口读写USB,对其初始化执行以下指令
xWriteCH376Cmd( CMD11_SET_USB_MODE );
xWriteCH376Data( 0x05 );
res = xReadCH376Data( );
res=0xF8是什么错误?
请问,用CH376并行口读写USB,对其初始化执行以下指令
xWriteCH376Cmd( CMD11_SET_USB_MODE );
xWriteCH376Data( 0x05 );
res = xReadCH376Data( );
res=0xF8是什么错误?
您好,设置USB MODE需要延时一段时间再去读取命令的返回值,其次首先需要确保CHECK_EXIST命令的数据取反是正确的,来保证接口通讯没有问题。
并口方式读写USB初始化CH376问题
UINT8mInitCH376Host( void ) /* 初始化CH376 */
{
UINT8res;
uchar xdata r;
CH376_PORT_INIT( ); /* 接口硬件初始化 */ /* 使用标准并口读写时序,无需初始化 */
xWriteCH376Cmd( CMD11_CHECK_EXIST ); /* 测试单片机与CH376之间的通讯接口 */
xWriteCH376Data( 0x65 );
res = xReadCH376Data( ); //这里返回值正确
if ( res != 0x9A ) return( ERR_USB_UNKNOWN );
xWriteCH376Cmd( CMD11_SET_USB_MODE ); /* 设备USB工作模式 */
delay_us(1);
xWriteCH376Data( 0x06 );
mDelayuS( 10 );
res = xReadCH376Data( ); //这里返回值不正确,返回值=0xF8是什么错误?
if ( res == CMD_RET_SUCCESS ) return( USB_INT_SUCCESS );
else return( ERR_USB_UNKNOWN ); /* 设置模式错误 */
}
您好,从 这个代码的流程上看是没有问题的,还需要注意的是延时操作是否实际生效,可以将所有信号线进行抓取分析时许本身是否正确。