斑竹请救命

斑竹或各位高手: 现在请教一个问题. 我用AVR+CH372做从设备,S3C44B0+CH375做主机.我用主机和设备来传输数据,通讯短时间没问题,但是一般超过30S就会出现主机接收不到成功标志,一般是在toggle_send()这一步,用的你们提供的例程,好象是.void issue_token( unsigned char endp_and_pid ) { unsigned char status,i,t; CH375_WR_CMD_PORT( CMD_ISSUE_TOKEN ); CH375_WR_DAT_PORT( endp_and_pid ); /* 高4位目的端点号, 低4位令牌PID */

while( INT_STATUS != USB_INT_SUCCESS );/* 等待设置模式操作完成,不超过30uS */ return; /* 成功 */ //Uart_Printf("\n issue_token ERROR!\n"); /* CH375出错 */ //return( INT_STATUS); } 然后就总是接收不到USB_INT_SUCCESS的标志,后面的传输就无法进行了,不知道是什么原因.请各位指教. 另外还有一个问题就是我的主机如何判断USB的断开,我本来想通过接收到的USB连接断开的中断来判断,但是后来发现不行.因为在USB连接断开的时候会收到很多USB中断断开的中断,这是是否有问题?还是本来如此,需要通过方法来处理? 谢谢各位,帮帮忙.

实际上375和372通信的时候,流程是这样的,首先是375枚举372,当枚举完成之后,372的单片机给372写数据下去,然后被动的等待375将数据取走,而375这边,则是先发获取数据的令牌,然后就是等待372的数据,当有数据的时候,375将中断脚拉低,返回的中断状态为操作成功,这个时候读取数据,当375将数据取走之后,372就会把中断脚拉低,372单片机读取中断状态是端点上传成功的状态 当USB设备拔下来的时候,375的中断脚会拉低,这个时候你读取中断状态为USB断开


在USB连接断开的时候会收到很多USB中断断开的中断,有问题,一般1个,个别USB设备是最多两个,否则查一下D+引脚的电平是否异常脉冲,另关闭CH372模式不如用复位命令


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