uint8 OPEN_Xlfile(uint8 *fname,uint8 fnamelen) //打开XL目录下的一个文件或所有文件 { uint8 i=0; USBCS(); //DELAY_Xus(SPI_DELAY_TIME); SPI_Rw(CMD_SET_FILE_NAME); //设置目录名为根目录 SPI_Rd(); for(i=0;i { SPI_Rw(*(fname+i)); SPI_Rd(); } SPI_Rw('\0'); SPI_Rd(); //DELAY_Xms(10); USBNCS(); DELAY_Xms(100); USBCS(); SPI_Rw(CMD_OPEN_FILE); //打开文件或目录 SPI_Rd(); USBNCS(); //DELAY_Xms(100); i=255; while((!GET_Interrupt_Status())&&(i)) { DELAY_Xms(50); i--; } //if(GET_Interrupt_Status()) //检查是否处于中断状态 //{ i=GET_Status(); //if(i!=USB_INT_DISK_READ) //被打开 if((i!=ERR_OPEN_DIR)&&(i!=USB_INT_SUCCESS)) //err_open_dir目录被打开,usb_int_success文件被打开 //if((i!=USB_INT_DISK_READ)&&(i!=USB_INT_SUCCESS)&&(i!=ERR_OPEN_DIR)) //err_open_dir目录被打开,usb_int_success文件被打开 { return 0; } //} //else //{ // return 0; //打开未成功 //} return 1; }
这个是我写的打开文件的函数,如果打开比如:123.XL,文件,函数操作正常,i这时是0x14,表明打开成功。但是用通配符*时,i的值确实1d,这明显是不对的,,,,,,,, 为什么?????????难道使用通配符时有1d的返回数值吗??????
函数是这么引用的:OPEN_Xlfile(fname,1);tname定义为uint8 fanme[]="*";