if ( s == ERR_DISK_DISCON )
break; /* ¼ì²âµ½¶Ï¿ª,ÖØÐ¼ì²â²¢¼ÆÊ± */
if ( CH376GetDiskStatus( ) >= DEF_DISK_MOUNTED && i >= 5 )
break; /* ÓеÄUÅÌ×ÜÊÇ·µ»ØÎ´×¼±¸ºÃ,²»¹ý¿ÉÒÔºöÂÔ,Ö»ÒªÆä½¨Á¢Á¬½ÓMOUNTEDÇÒ³¢ÊÔ5*50mS */ } if ( s == ERR_DISK_DISCON ) {
}
/* ¼ì²âµ½¶Ï¿ª,ÖØÐ¼ì²â²¢¼ÆÊ± */ printf( \É豸ÒѶϿª---Device gone\\n\continue;
if ( CH376GetDiskStatus( ) < DEF_DISK_MOUNTED ) {
/* δ֪USBÉ豸,ÀýÈçUSB¼üÅÌ¡¢´òÓ¡»úµÈ */ printf( \ goto UnknownUsbDevice; } i = CH376ReadBlock( buf ); /* Èç¹ûÐèÒª,¿ÉÒÔ¶ÁÈ¡Êý¾Ý¿éCH376_CMD_DATA.DiskMountInq,·µ»Ø³¤¶È */ if ( i == sizeof( INQUIRY_DATA ) ) {
}
/* UÅ̵ij§É̺ͲúÆ·ÐÅÏ¢ */ buf[ i ] = 0;
printf( \Å̳§ÉÌ---UdiskInfo: %s\\n\
/* ¶ÁÈ¡Îļþ */ strcpy( SrcName, \ /* Ô´ÎļþÃû,¶à¼¶Ä¿Â¼ÏµÄÎļþÃûºÍ·¾¶Ãû±ØÐë¸´ÖÆµ½RAMÖÐÔÙ´¦Àí,¶ø¸ùĿ¼»òÕßµ±Ç°Ä¿Â¼ÏµÄÎļþÃû¿ÉÒÔÔÚRAM»òÕßROMÖÐ */ strcpy( TarName, \ /* Ä¿±êÎļþÃû */ printf( \´ò¿ªÎļþ --- Open\\n\ s = CH376FileOpenPath( SrcName ); /* ´ò¿ªÎļþ,¸ÃÎļþÔÚC51×ÓĿ¼Ï */ if ( s == ERR_MISS_DIR || s == ERR_MISS_FILE ) { /* ûÓÐÕÒµ½Ä¿Â¼»òÕßûÓÐÕÒµ½Îļþ */ /* ÁгöÎļþ,ÍêÕûö¾Ù¿ÉÒԲο¼EXAM13È«ÅÌö¾Ù */ if ( s == ERR_MISS_DIR ) strcpy( buf, \ /* C51×ÓĿ¼²»´æÔÚÔòÁгö¸ùĿ¼ÏµÄÎļþ */ else strcpy( buf, \); /* CH376HFT.CÎļþ²»´æÔÚÔòÁгö\\C51×Ó
Ŀ¼ÏµÄÒÔCH376¿ªÍ·µÄÎļþ */ printf( \ÁоÙËùÓÐÎļþ---List file %s\\n\ s = CH376FileOpenPath( buf ); /* ö¾Ù¶à¼¶Ä¿Â¼ÏµÄÎļþ»òÕßĿ¼,ÊäÈ뻺³åÇø±ØÐëÔÚRAMÖÐ */ while ( s == USB_INT_DISK_READ ) { /* ö¾Ùµ½Æ¥ÅäµÄÎļþ */ CH376ReadBlock( buf ); /* ¶Áȡö¾Ùµ½µÄÎļþµÄFAT_DIR_INFO½á¹¹,·µ»Ø³¤¶È×ÜÊÇsizeof( FAT_DIR_INFO ) */ pDir = (P_FAT_DIR_INFO)buf; /* µ±Ç°ÎļþĿ¼ÐÅÏ¢ */ if ( pDir -> DIR_Name[0] != '.' ) { /* ²»ÊDZ¾¼¶»òÕßÉϼ¶Ä¿Â¼ÃûÔò¼ÌÐø,·ñÔò±ØÐ붪Æú²»´¦Àí */ if ( pDir -> DIR_Name[0] == 0x05 ) pDir -> DIR_Name[0] = 0xE5; /* ÌØÊâ×Ö·ûÌæ»» */ pDir -> DIR_Attr = 0; /* Ç¿ÖÆÎļþÃû×Ö·û´®½áÊøÒÔ±ã´òÓ¡Êä³ö */ /* ´òÓ¡Ãû³Æ,Ôʼ8+3¸ñʽ,δÕûÀí³Éº¬Ð¡Êýµã·Ö¸ô·û */ printf( \ } xWriteCH376Cmd( CMD0H_FILE_ENUM_GO ); /* ¼ÌÐøÃ¶¾ÙÎļþºÍĿ¼ */ xEndCH376Cmd( ); s = Wait376Interrupt( ); } if ( s != ERR_MISS_FILE ) mStopIfError( s ); /* ²Ù×÷³ö´í */ /*--- н¨Ò»¸öÎļþ ---*/ printf( \ÐÂÎļþ±»´´½¨---Create\\n\ s = CH376FileCreatePath( TarName ); /* н¨¶à¼¶Ä¿Â¼ÏµÄÎļþ,Ö§³Ö¶à¼¶Ä¿Â¼Â·¾¶,ÊäÈ뻺³åÇø±ØÐëÔÚRAMÖÐ */ mStopIfError( s ); printf( \ÐÂÎļþ±»Ð´Èë---Write\\n\ strcpy( buf, \ÕÒ²»µ½/C51/CH376HFT.CÎļþ,»¶ÓʹÓÃÒ»Ãùµç×ÓÄ£¿é!\\xd\\n\ s = CH376ByteWrite( buf, strlen(buf), NULL ); /* ÒÔ×Ö½ÚΪµ¥Î»Ïòµ±Ç°Î»ÖÃдÈëÊý¾Ý¿é */ mStopIfError( s ); printf( \ÐÂÎļþ±»¹Ø±Õ---Close\\n\ s = CH376FileClose( TRUE ); /* ¹Ø±ÕÎļþ,¶ÔÓÚ×Ö½Ú¶Áд½¨Òé×Ô¶¯¸üÐÂÎļþ³¤¶È */ mStopIfError( s ); printf(\
strcpy( TarName, \ /* Ä¿±êÎļþÃû */
/*--- н¨ÁíÍâÒ»¸öÎļþ£»ÎļþÃû£ºyimingtest.txt ---*/ printf( \´´½¨ÁíÍâÒ»¸öÎļþ---Create\\n\s = CH376FileCreatePath( TarName ); mStopIfError( s );
printf( \ÐÂÎļþ±»Ð´Èë----Write\\n\strcpy( buf, \¹§Ï²·¢²ÆÁË!\\xd\\n\
s = CH376ByteWrite( buf, strlen(buf) , NULL); mStopIfError ( s );
printf( \Îļþ±»¹Ø±Õ --- Close\\n\s = CH376FileClose(TRUE); mStopIfError( s );
/*--- ×·¼ÓÎļþÊý¾ÝµÄÀý×Ó ---*/ printf( \
strcpy( SrcName, \
s = CH376FileOpenPath( SrcName ); printf( \ if( s == USB_INT_SUCCESS ) {
//³É¹¦´ò¿ªÎļþ
strcpy( buf, \ÊDz»ÊÇÒªÇë¸çÃdzԷ¹ÁËÄØ?\\xd\\n\CH376ByteLocate(0xFFFFFFFF);
s = CH376ByteWrite( buf, strlen(buf) , NULL); mStopIfError ( s );
printf( \Îļþ±»¹Ø±Õ --- Close\\n\ s = CH376FileClose(TRUE); mStopIfError( s ); } else mStopIfError( s ); /*--- ¶ÁÈ¡ÎļþÊý¾ÝµÄÀý×Ó ---*/ printf( \
printf( \¶ÁÈ¡ÎļþÊý¾ÝµÄÀý×Ó:\\n\strcpy( SrcName, \
s = CH376FileOpenPath( SrcName ); printf( \ if( s == USB_INT_SUCCESS ) { len = CH376GetFileSize(); CH376ByteLocate( 0 ); CH376ByteRead(buf,len,NULL); printf( \
mStopIfError ( s ); printf( \Îļþ±»¹Ø±Õ --- Close\\n\ s = CH376FileClose(TRUE); mStopIfError( s ); } else mStopIfError( s ); } else { /* ÕÒµ½Îļþ»òÕß³ö´í */ mStopIfError( s ); }
UnknownUsbDevice: }
}
printf( \É豸°Î³ö --- Take out\\n\
while ( CH376DiskConnect( ) == USB_INT_SUCCESS ) { /* ¼ì²éUÅÌÊÇ·ñÁ¬½Ó,µÈ´ýUÅ̰γö */ mDelaymS( 100 ); }
mDelaymS( 200 );
SPI_SW.C Îļþ
/* CH376оƬ Èí¼þÄ£ÄâSPI´®ÐÐÁ¬½ÓµÄÓ²¼þ³éÏó²ã V1.0 */ /* ÌṩI/O½Ó¿Ú×Ó³ÌÐò */
#include \
/* ±¾ÀýÖеÄÓ²¼þÁ¬½Ó·½Ê½ÈçÏÂ(ʵ¼ÊÓ¦Óõç·¿ÉÒÔ²ÎÕÕÐÞ¸ÄÏÂÊö¶¨Òå¼°×Ó³ÌÐò) */ /* µ¥Æ¬»úµÄÒý½Å CH376оƬµÄÒý½Å P1.4 SCS P1.5 SDI P1.6 SDO
P1.7 SCK */ sbit P24 = P2^4; sbit P25 = P2^5; sbit P26 = P2^6;