[求助]为什么我的CH374读出一直是睡眠状态?

还有,我中断采用的是脉冲方式


不建议你采用脉冲中断方式,建议你采用电平方式比较好点。还有在这个函数里面按照下面的数据读取下: UINT8 HostCtrlTransfer374( PUINT8 ReqBuf, PUINT8 DatBuf, PUINT8 RetLen ) // 执行控制传输,ReqBuf指向8字节请求码,DatBuf为收发缓冲区 // 如果需要接收和发送数据,那么DatBuf需指向有效缓冲区用于存放后续数据,实际成功收发的总长度保存在ReqLen指向的字节变量中 { UINT8 s, len, count, total; BOOL tog; u8 data_buf[8]; Write374Block( RAM_HOST_TRAN, 8, ReqBuf ); Read374Block( RAM_HOST_TRAN, 8, data_buf );

Write374Byte( REG_USB_LENGTH, 8 ); mDelayuS( 100 ); 看下data_buf的数据是不是你写下去的数据。


你无法跟踪是哪里出错了吗?既然跟踪是这三个地方了,肯定是中一个地方是正确的。 返回0X2B不是错误,明显是否到数据包了。可能是同步标志被你修改发会错误了。0X2B收到的是DATA1。


现在进展比较大,还是中断处理的不是很正常。

请问有没有中断方式枚举设备的代码?


Start CH374 Host Successful register CH374 ISR! Wait Device In

-----------------------------//插入设备 s=66 //中断寄存器的状态 Reset Device s=60 Start Low-Speed Device GetDeviceDescr: test11-3 ERROR = 27 Wait Device Out s=f5

---------------------------------拔出设备,再次插入 Wait Device In s=56 s=55 s=76 Reset Device s=61 Start Low-Speed Device GetDeviceDescr: test11-3 ERROR = 27 Wait Device Out s=f5

------------------------拔出设备 Wait Device In s=56 s=55

现在的状态是这样的,是什么问题呢?


Start CH374 Host Successful register CH374 ISR! Wait Device In s=66 Reset Device s=60 Start Low-Speed Device GetDeviceDescr: data[0]=0x80 data[1]=0x6 data[2]=0x0 data[3]=0x1 data[4]=0x0 data[5]=0x0 data[6]=0x12 data[7]=0x0 test11-3 ERROR = 27 Wait Device Out s=f5

hcn, 我测试了一下,数据写下去是正常的。


你插入的是什么设备?是低速设备吗?


是触摸屏。


是usb1.1


你好,能给我一个,你们的QQ吗?


我的是236759734


那你插入U盘测试下看可以不可以枚举?还有插入触摸屏之后,UD+和UD-对地的电压是多少?


插U盘结果是一样的,

Start CH374 Host Successful register CH374 ISR! Wait Device In s=e6 Reset Device s=e0 Start Full-Speed Device GetDeviceDescr: data[0]=0x80 data[1]=0x6 data[2]=0x0 data[3]=0x1 data[4]=0x0 data[5]=0x0 data[6]=0x12 data[7]=0x0 test11-3 ERROR = 27 Wait Device Out

插触摸屏UD+电压为0,UD-电压为3.2V

插入u盘UD+ 和UD- 一直有数据在变化,用示波器看的。


现在的u盘可以正常枚举了,但是触摸屏不正常,本来是低速设备,为什么设置成了高速的。


错误是0x20


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