//这是读块函数 UINT8 CH376ReadBlock( unsigned char far* buf ) /* 从当前主机端点的接收缓冲区读取数据块,返回长度 */ { UINT8 s, l; xWriteCH376Cmd( CMD01_RD_USB_DATA0 ); l = xReadCH376Data( ); /* 长度 */ s = l; // printf("qu dao cang du le mei ? L = %bu \r\n", l); if ( l ) { do { *buf = xReadCH376Data( ); buf ++; } while ( -- l ); } return( s ); }
//这时读字节函数
UINT8 xReadCH376Data( void ) /* 从CH376读数据 */ { UINT32 i; for ( i = 0; i < 500; i ++ ) //源程序中本来是500000,我改成了500 { /* 计数防止超时 */ if ( RI ) { /* 串口接收到 */ RI = 0; return( SBUF ); /* 串口输入 */ } } printf("i=%lu\r\n", i); return( 0 ); /* 不应该发生的情况 */ }
我用UINT8 CH376ByteRead( unsigned char far* buf, UINT16 ReqCount, PUINT16 RealCount )读某文件100个字节的时候,老是有几字节超时,也就是printf打印出500 我该怎么办??