我用的EXMA0的程序。把CH376作为HOST来用,但在插上U盘后能认识U盘了,返回了U盘的的厂商信息和分区了,但是到了以下就出现了返回0XFA,我经过跟踪了一下程序,发现在 UINT8 Wait376Interrupt( void ) /* 等待CH376中断(INT#低电平),返回中断状态码, 超时则返回ERR_USB_UNKNOWN */ { #ifdef DEF_INT_TIMEOUT 0 #if DEF_INT_TIMEOUT < 1 while ( Query376Interrupt( ) == FALSE ); /* 一直等中断 */ return( CH376GetIntStatus( ) ); /* 检测到中断 */ #else UINT32 i; for ( i = 0; i < DEF_INT_TIMEOUT; i ++ ) { /* 计数防止超时 */ if ( Query376Interrupt( ) ) return( CH376GetIntStatus( ) ); /* 检测到中断 */ /* 在等待CH376中断的过程中,可以做些需要及时处理的其它事情 */ } return( ERR_USB_UNKNOWN ); /* 不应该发生的情况 */ #endif #else UINT32 i; for ( i = 0; i < 5000000; i ++ ) { /* 计数防止超时,默认的超时时间,与单片机主频有关 */ if ( Query376Interrupt( ) ){printf( "检测到中断返回中断状态~\n"); return( CH376GetIntStatus( ) );} /* 检测到中断 */ /* 在等待CH376中断的过程中,可以做些需要及时处理的其它事情 */ } printf( "计数超时~!\n"); return( ERR_USB_UNKNOWN ); /* 不应该发生的情况 */ #endif } #endif
--------------- 以上程序超时了,不知道为什么。出错的主程序是下面的部分,在打开\\C51\\CH376HFT.C出现了超时导制返回了0XFA希望管理员能看到帮忙解决一下是什么问题。谢谢
---------------------------- /* 读取原文件 */ printf( "Open\n" ); strcpy( buf, "\\C51\\CH376HFT.C" ); /* 源文件名,多级目录下的文件名和路径名必须复制到RAM中再处理,而根目录或者当前目录下的文件名可以在RAM或者ROM中 */ s = CH376FileOpenPath( buf ); /* 打开文件,该文件在C51子目录下 */