[求助]关于枚举的疑问

大家好。

我看到exam13和datasheet里面描述枚举的功能都是这样实现的: CH376FileOpen("\\SONG"); CH376SetFileName( "*" ); xWriteCH376Cmd( CMD0H_FILE_OPEN ); xEndCH376Cmd( ); while(1) { s = Wait376Interrupt( ); if ( s == USB_INT_DISK_READ ) //搜索到一个文件 { xWriteCH376Cmd( CMD0H_FILE_ENUM_GO );//继续枚举 xEndCH376Cmd( ); } } 也就是说,一旦开始枚举,就会从目录下第一个文件开始枚举,我想请问一下,是否能够选择从某个文件之后开始枚举?比如,目录下面有100个文件,我之前已经枚举前面50个,然后枚举过程被打断了(单片机去执行其他事务),然后我再次进入该目录,继续枚举剩下的文件。请问能否实现这样的功能?如何实现?

是否存在类似下面的情况? CH376FileOpen("\\SONG"); ch376bytelocate(n);(指针偏移之后再开始枚举?[Emot]3) CH376SetFileName( "*" ); xWriteCH376Cmd( CMD0H_FILE_OPEN ); xEndCH376Cmd( );

谢谢。 ========= ps:我现在的方法是,当需要枚举出第n个文件的时候,就忽略(n-1)个USB_INT_DISK_READ,等到第n次中断产生的时候再响应。但是这样一来,越往后的文件就需要忽略越多次中断,第100个文件需要CMD0H_FILE_ENUM_GO一百次,第500个文件需要CMD0H_FILE_ENUM_GO 五百次,……需要耗费太长的时间。

自己顶顶,知道的朋友请不吝赐教,谢谢


我们CH376文件枚举过程中,是不能执行其它可能产生中断的操作命令。你的那种方法也相当于做了一次完整的枚举过程。


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