用375接收大量數(shù)據(jù)有問題 你好!我是浙大三色研發(fā)部的徐明明,我們買的你們CH375A的評估板作usb主機(jī),用來和數(shù)據(jù)采集設(shè)備(CCD光譜儀)usb通訊。 現(xiàn)在接收數(shù)據(jù)有問題,本應(yīng)收到4168字節(jié),結(jié)果只收到2060個(gè)字節(jié),不知道是否程序問題還是375速度問題 接收子程序如下 void Read_Usb_Data( void ) // 讀取數(shù)據(jù) { unsigned char i,len,s; tog_1=1; len=0x40; while(len==0x40){ toggle_send(tog_1); s=issue_token( ( 0x82 << 4 ) | DEF_USB_PID_IN ); if(s==USB_INT_SUCCESS) { /* SETUP階段DATA0操作成功 */ len=rd_usb_data(buffer); printf("len=%02x\n",(unsigned short)len); for( i=0;i!=len;i++ ) printf("%02x ",(unsigned short)buffer[i]); tog_1=tog_1 ? 0:1; } else if ( s==USB_INT_RET_NAK ){ mDelaymS(2); } } toggle_send(tog_1); s=issue_token( ( 0x82 << 4 ) | DEF_USB_PID_IN ); if(s==USB_INT_SUCCESS) { /* SETUP階段DATA0操作成功 */ len=rd_usb_data(buffer); printf("len=%02x\n",(unsigned short)len); for( i=0;i!=len;i++ ) printf("%02x ",(unsigned short)buffer[i]); tog_1=tog_1 ? 0:1; } else if ( s==USB_INT_RET_NAK ){ mDelaymS(2); } }
后來我把toggle_send改成toggle_recv 程序如下 void Read_Usb_Data( void ) // 讀取數(shù)據(jù) { unsigned char i,len,s; tog_1=0; len=0x40; while(len==0x40){ toggle_recv(tog_1); s=issue_token( ( 0x82 << 4 ) | DEF_USB_PID_IN ); if(s==USB_INT_SUCCESS) { /* SETUP階段DATA0操作成功 */ len=rd_usb_data(buffer); // printf("len=%02x\n",(unsigned short)len); for( i=0;i!=len;i++ ) printf("%02x ",(unsigned short)buffer[i]); tog_1=tog_1 ? 0:1; } else if ( s==USB_INT_RET_NAK ){ mDelaymS(2); } } toggle_recv(tog_1); s=issue_token( ( 0x82 << 4 ) | DEF_USB_PID_IN ); if(s==USB_INT_SUCCESS) { /* SETUP階段DATA0操作成功 */ len=rd_usb_data(buffer); // printf("len=%02x\n",(unsigned short)len); for( i=0;i!=len;i++ ) printf("%02x ",(unsigned short)buffer[i]); tog_1=tog_1 ? 0:1; } else if ( s==USB_INT_RET_NAK ){ mDelaymS(2); } } 能接收到4172字節(jié) 多了4字節(jié) 而且采到的數(shù)據(jù)數(shù)一段段不連續(xù)的 請問是程序問題還是375速度不夠?