求助CH376读文件出错

res = CH376DiskConnect();/* 检查U盘是否连接,等待U盘插入,对于SD卡,可以由单片机直接查询SD卡座的插拔状态引脚 */

i = CH376DiskReadSec( Rxive_Buf,0,1);

以上都正确.

unchar SrcName[20] = "SR630818.swi";

SR630818.swi.这个文件是在U盘的根目录当中.

s = CH376FileOpen( SrcName ); /*在根目录或者当前目录下打开文件或者目录(文件夹) */ 这个函数如果是快速度运行.是会返..0x42..指不到文件. 如果..在 CH376SetFileName( name ); /* 设置将要操作的文件的文件名 */ 函数中有设置..中断点...S..返回的.就是0x14.. s = CH376ByteRead( Rxive_Buf, 512, &count ); /* 以字节为单位读取数据,*/ __wait_nop(); 这个.S返回..出错..是0xB4..... ..以上所有函数都是用..CH376EVT..当中的.函数.. UINT8 CH376ByteRead( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount ) { UINT8 s; xWriteCH376Cmd( CMD2H_BYTE_READ ); xWriteCH376Data( (UINT8)ReqCount ); xWriteCH376Data( (UINT8)(ReqCount>>8) ); //xEndCH376Cmd( ); if ( RealCount ) *RealCount = 0; while ( 1 ) { s = Wait376Interrupt( ); if ( s == USB_INT_DISK_READ ) { // s = CH376ReadBlock( buf ); /* 从当前主机端点的接收缓冲区读取数据块,返回长度 */ if ( *(PUINT8)&buf ) s = CH376ReadBlockX( buf ); /* 外部RAM */ else s = CH376ReadBlockI( buf ); /* 内部RAM */ xWriteCH376Cmd( CMD0H_BYTE_RD_GO ); //xEndCH376Cmd( ); buf += s; if ( RealCount ) *RealCount += s; } /* else if ( s == USB_INT_SUCCESS ) return( s );*/ /* 结束 */ else return( s ); /* 错误 */ } }

如果是单步运行...s = Wait376Interrupt( );..在这里返回的是FA.

请问是什么原因呢?

文件名必须是符合8+3格式的英文大写字母或者数字。


请问一下.如果文件名的..后缀是小写字母...怎么样才能打开呢?


只要文件名中包括后缀名 中有小写字母的 都属于长文件名范畴, 要按照长文件名的规范操作,参考EXAM11是演示长文件名的例程


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