亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? exam11.c

?? USB驅動芯片簡介及驅動源程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
				if(pDirName->DIR_Attr==ATTR_LONG_NAME){pDirName++;continue;}		/*為長文件名,不分析*/
				for(i=0;i!=8;i++){									/*分析文件名是否相同*/
					if(pDirName->DIR_Name[i]==0x20)continue;		/*為20不分析*/        
					if(pDirName->DIR_Name[i]!=*pBuf)break;
					else pBuf++;
				}
				if(i!=8){pDirName++;continue;}						/*沒有找到匹配的短文件名*/
				if(*pBuf=='.')pBuf++;
				for(;i!=11;i++){
					if(pDirName->DIR_Name[i]==0x20)continue;				
					if(pDirName->DIR_Name[i]!=*pBuf)break;		
					else pBuf++;
				}
				if(i==11){break;}								/*表示找到文件名*/
				pDirName++;
			}
			if(i==11)break;								/*找到*/
			if(a==1){k=16;break;}
		}
		if(k!=16){
				 x=0;      /*下面找短文件名然后刪除*/
				 sum=ChkSum(pDirName); 					       /*計算和*/				
				 pLDirName=FBuf?FILE_DATA_BUF_ADDR:FILE_DATA_BUF_ADDR1;	/*長文件名指針指向緩沖區*/
				 pLDirName+=k-1;
				 if(k==0){pLDirName=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;  /*如果短文件名是叢第一組開始的,長文件名就要往起移動*/
						pLDirName+=15;						
						k=15;					
					}
				while(1){	
					if((pLDirName->LDIR_Attr==0x0f)&(pLDirName->LDIR_Chksum==sum)&(pLDirName->LDIR_Ord!=0xe5)){
						pLDirName->LDIR_Ord=0xe5;				/*刪除長文件名*/
				   		x++;
						k=k-1;
					}
					else break;							/*沒有長文件名則條出*/
					if(x==15)break;						/*最大限制長文件名為16*13字節*/
					if(k==0){								/*首先移動文件指針*/					
						pLDirName=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;
						pLDirName+=15;														
					}
					else {pLDirName-=1; k-=1;}
				}
					if(tempSec!=0){
						tempSec-=1;
						mCmdParam.Locate.mSectorOffset=(unsigned long)tempSec;		/*將分析過的目錄項重新寫入*/
						i=CH375FileLocate();
						if(i!=ERR_SUCCESS)goto XLL;	
						mCmdParam.ReadX.mSectorCount=1;
						mCmdParam.ReadX.mDataBuffer=FBuf?FILE_DATA_BUF_ADDR:FILE_DATA_BUF_ADDR1;
						i=CH375FileWriteX( );
						if(i!=ERR_SUCCESS)goto XLL;
					}
				if(tempSec!=0){
					tempSec-=1;
					mCmdParam.Locate.mSectorOffset=(unsigned long)tempSec;		/*將分析過的目錄項重新寫入*/
					i=CH375FileLocate();
					if(i!=ERR_SUCCESS)goto XLL;	
					mCmdParam.ReadX.mSectorCount=1;
					mCmdParam.ReadX.mDataBuffer=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;
					i=CH375FileWriteX( );
					if(i!=ERR_SUCCESS)goto XLL;
				}
			}
	}		
	CH375DirtyBuffer(  );		
	i=CH375FileClose( );		
	CH375DirtyBuffer(  );						/*清磁盤緩沖區*/
	for(k=0;k!=MAX_PATH_LEN;k++)mCmdParam.Other.mBuffer[k]=ParData[k];			/**/	
	i=CH375FileErase( );
	return i;
XLL:  return i;								/*出錯時,返回錯誤信息*/						
}

/*讀取指定短文件名的長文件名,返回長文件名在長文件名空間*/
UINT8  mLookUpLName(){
	UINT8  BlockSer1;				/*定義兩個扇區塊內記數*/
	unsigned char xdata ParData[MAX_PATH_LEN];			/**/
	UINT16	tempSec;						/*扇區偏移*/
	UINT8 a,i,j,x,k,sum;
	F_LONG_NAME   xdata *pLDirName; 
	P_FAT_DIR_INFO  pDirName;
	bit  FBuf;
	unsigned char xdata *pBuf;
	unsigned int xdata *pBuf1;
	for(k=0;k!=MAX_PATH_LEN;k++)ParData[k]=mCmdParam.Other.mBuffer[k];			/**/
		i=mChkName(&j);	
	if ( i == ERR_SUCCESS ) {  /* 成功獲取上級目錄的起始簇號 */
		BlockSer1=0;
		FBuf=0;					/*初始化*/	
		tempSec=0;				
		while(1){							/*下面是讀取并分析目錄項*/
			pDirName=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;		/*短文件名指針指向緩沖區*/		
			mCmdParam.ReadX.mSectorCount=1;				/*讀取一扇區數據*/
			mCmdParam.ReadX.mDataBuffer=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;  /*當前處理的文件緩沖區,這里使用雙向緩沖區,去處理文件名*/
			FBuf=!FBuf;												/*緩沖區標志翻轉*/
			i=CH375FileReadX( );
			if(i!=ERR_SUCCESS)goto XFF;
			if(mCmdParam.ReadX.mSectorCount==0){k=16;break;}			/*表示沒有數據讀出*/
			tempSec+=1;												/*扇區記數加一*/
			for(k=0;k!=16;k++){																	
				pBuf=&ParData[j+1];						
				if(pDirName->DIR_Name[i]==0){k=15;a=1;continue;}		/*第一個字節為0,表示以后沒有有效的目錄項了*/
				if(pDirName->DIR_Name[i]==0xe5){pDirName++;continue;}			/*第一個字節為0XE5表示此項被刪除*/
				if(pDirName->DIR_Attr==ATTR_VOLUME_ID){pDirName++;continue;}		/*為卷標,不分析*/
				if(pDirName->DIR_Attr==ATTR_LONG_NAME){pDirName++;continue;}		/*為長文件名,不分析*/
				for(i=0;i!=8;i++){									/*分析文件名是否相同*/
				if(pDirName->DIR_Name[i]==0x20)continue;		/*為20不分析*/        
				if(pDirName->DIR_Name[i]!=*pBuf)break;
				else pBuf++;
			}
			if(i!=8){pDirName++;continue;}						/*沒有找到匹配的短文件名*/
			if(*pBuf=='.')pBuf++;
			for(;i!=11;i++){
				if(pDirName->DIR_Name[i]==0x20)continue;				
				if(pDirName->DIR_Name[i]!=*pBuf)break;		
				else pBuf++;
			}
			if(i==11){break;}								/*表示找到文件名*/
			pDirName++;
			}
			if(i==11)break;								/*找到*/
			if(a==1){k=16;break;}
		}
		if(k!=16){
					pBuf1=LongFileName;
						 x=0;
				 sum=ChkSum(pDirName); 					       /*計算和*/				
				 pLDirName=FBuf?FILE_DATA_BUF_ADDR:FILE_DATA_BUF_ADDR1;	/*長文件名指針指向緩沖區*/
				 pLDirName+=k-1;
				 if(k==0){pLDirName=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;  /*如果短文件名是叢第一組開始的,長文件名就要往起移動*/
						pLDirName+=15;						
						k=15;					
					}
				while(1){	
					if(pLDirName->LDIR_Attr==0x0f&pLDirName->LDIR_Chksum==sum&pLDirName->LDIR_Ord!=0xe5){
						for(j=0;j!=5;j++){	
						*pBuf1=pLDirName->LDIR_Name1[j];
						pBuf1++;
						}
						for(;j!=11;j++){	
						*pBuf1=pLDirName->LDIR_Name2[j-5];
						pBuf1++;
						}
							for(;j!=13;j++){	
						*pBuf1=pLDirName->LDIR_Name3[j-11];
						pBuf1++;
						}
						/*這里將長文件名復制出去,最大16*13個長文件名*/					
				   		x++;	 
					}
					else break;							/*沒有長文件名則條出*/
					if(x==15)break;						/*最大限制長文件名為16*13字節*/
					if(k==0){						/*首先移動文件指針*/					
						pLDirName=FBuf?FILE_DATA_BUF_ADDR1:FILE_DATA_BUF_ADDR;
						pLDirName+=15;														
					}
					else {pLDirName-=1; k-=1;}
				}
			}					
	}
	*pBuf1=0;
	pBuf1++;
	i=CH375FileClose( );	
	return 0;					
XFF:  return i;
}

main( ) {
	UINT8	i,k;
	UINT16 X;
	LED_OUT_INIT( );
	LED_OUT_ACT( );  /* 開機后LED亮一下以示工作 */
	mDelaymS( 100 );  /* 延時100毫秒 */
	LED_OUT_INACT( );
	mInitSTDIO( );  /* 為了讓計算機通過串口監控演示過程 */
	printf( "Start\n" );
	i = CH375LibInit( );  /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */
	mStopIfError( i );
/* 其它電路初始化 */

	while ( 1 ) {
	//	printf( "Wait Udisk\n" );
		while ( CH375DiskStatus != DISK_CONNECT ) xQueryInterrupt( );  /* 查詢CH375中斷并更新中斷狀態,等待U盤插入 */
		LED_OUT_ACT( );  /* LED亮 */
		mDelaymS( 200 );  /* 延時,可選操作,有的USB存儲器需要幾十毫秒的延時 */

/* 檢查U盤是否準備好,有些U盤不需要這一步,但是某些U盤必須要執行這一步才能工作 */
		for ( i = 0; i < 5; i ++ ) {  /* 有的U盤總是返回未準備好,不過可以被忽略 */
			mDelaymS( 100 );
	//		printf( "Ready ?\n" );
			if ( CH375DiskReady( ) == ERR_SUCCESS ) break;  /* 查詢磁盤是否準備好 */
		}
/* 查詢磁盤物理容量 */
//		printf( "DiskSize\n" );
//		i = CH375DiskSize( );
//		mStopIfError( i );
//		printf( "TotalSize = %u MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec >> 11 ) );  /* 顯示為以MB為單位的容量 */
		LED_RUN_ACT( );  /* 開始操作U盤 */

		X=0X4100;
		for(k=0;k!=0x0F;k++){		/*演示創建長文件名*/
			mCmdParam.Erase.mPathName[0]='/';   /*給出參考短文件名*/
			mCmdParam.Erase.mPathName[1]='C';
			mCmdParam.Erase.mPathName[2]='/';
			mCmdParam.Erase.mPathName[3]='A';
			mCmdParam.Erase.mPathName[4]='B';
			mCmdParam.Erase.mPathName[5]='C';
			mCmdParam.Erase.mPathName[6]='D';		
			mCmdParam.Erase.mPathName[7]='A';
			mCmdParam.Erase.mPathName[8]='~';
			mCmdParam.Erase.mPathName[9]='1';
			mCmdParam.Erase.mPathName[10]='2';
			mCmdParam.Erase.mPathName[11]='.';
			mCmdParam.Erase.mPathName[12]='C';
			mCmdParam.Erase.mPathName[13]=00;
			LongFileName[0]=0X4100;					/*給出UNICODE的長文件名*/						
			LongFileName[1]=0X4200;    /* 對于小端數據格式的單片機,例如AVR/MSP430/ARM等是0x0042,下同 */
			LongFileName[2]=0X4300;
			LongFileName[3]=0X4400;
			LongFileName[4]=0X4500;
			LongFileName[5]=0X4600;
			LongFileName[6]=0X4700;
			LongFileName[7]=0X4800;
			LongFileName[8]=0X4100;
			LongFileName[9]=0X6300;
			LongFileName[10]=0X6200;
			LongFileName[11]=0X6100;
			LongFileName[12]=X;
			LongFileName[13]=X;
			LongFileName[14]=0X2e00;
			LongFileName[15]=0X4300;
			LongFileName[16]=0X0000;
	
			i=mCreatLName();				/*創建長文件名*/			
		X+=0X100;
	}

		X=0X4100;
		for(k=0;k!=0x0F;k++){		/*演示創建長文件名*/
		mCmdParam.Erase.mPathName[0]='/';   /*給出參考短文件名*/
		mCmdParam.Erase.mPathName[1]='A';
		mCmdParam.Erase.mPathName[2]='B';
		mCmdParam.Erase.mPathName[3]='C';
		mCmdParam.Erase.mPathName[4]='D';		
		mCmdParam.Erase.mPathName[5]='A';
		mCmdParam.Erase.mPathName[6]='~';
		mCmdParam.Erase.mPathName[7]='1';
		mCmdParam.Erase.mPathName[8]='1';
		mCmdParam.Erase.mPathName[9]='.';
		mCmdParam.Erase.mPathName[10]='C';
		mCmdParam.Erase.mPathName[11]=00;

		LongFileName[0]=0X6100;					/*給出UNICODE的長文件名*/						
		LongFileName[1]=0X4200;
		LongFileName[2]=0X6300;
		LongFileName[3]=0X4400;
		LongFileName[4]=0X4500;
		LongFileName[5]=0X6500;
		LongFileName[6]=0X4700;
		LongFileName[7]=0X4800;
		LongFileName[8]=0X4100;
		LongFileName[9]=0X6300;
		LongFileName[10]=0X6200;
		LongFileName[11]=0X6100;
		LongFileName[12]=X;
		LongFileName[13]=X;
		LongFileName[14]=0X2e00;
		LongFileName[15]=0X4300;
		LongFileName[16]=0X0000;
	
			i=mCreatLName();				/*創建長文件名*/			
		X+=0X100;
	}
	X=0X4100;

for(k=0;k!=0x4;k++){	    /*查找并刪除*/
		mCmdParam.Erase.mPathName[0]='/';		/*給出路徑*/
		mCmdParam.Erase.mPathName[1]='C';
		mCmdParam.Erase.mPathName[2]='/';
		mCmdParam.Erase.mPathName[3]=00;
		LongFileName[0]=0X4100;				/*給出長文件名*/					
		LongFileName[1]=0X4200;
		LongFileName[2]=0X4300;
		LongFileName[3]=0X4400;
		LongFileName[4]=0X4500;
		LongFileName[5]=0X4600;
		LongFileName[6]=0X4700;
		LongFileName[7]=0X4800;
		LongFileName[8]=0X4100;
		LongFileName[9]=0X6300;
		LongFileName[10]=0X6200;
		LongFileName[11]=0X6100;
		LongFileName[12]=X;
		LongFileName[13]=X;
		LongFileName[14]=0X2e00;
		LongFileName[15]=0X4300;
		LongFileName[16]=0X0000;

		i=mLoopkUpSName();			/*查找短文件名*/
		i=mdeleteFile();			/*刪除文件*/	
		X+=0X100;
	}

		X=0;
	while(1)
	{	
		mCmdParam.Erase.mPathName[0]='/';		/*給出路徑*/
		mCmdParam.Erase.mPathName[1]='C';
		mCmdParam.Erase.mPathName[2]='/';
		mCmdParam.Erase.mPathName[3]='*';
		mCmdParam.Erase.mPathName[4]=X;
		mCmdParam.Erase.mPathName[5]=00;
		mCmdParam.Erase.mPathName[6]=00;
		i=CH375FileOpen();
		if ( i == ERR_MISS_FILE ) break;  /* 再也搜索不到匹配的文件,已經沒有匹配的文件名 */
		if ( i == ERR_FOUND_NAME ) {  /* 搜索到與通配符相匹配的文件名,文件名及其完整路徑在命令緩沖區中 */
		   i=mLookUpLName();		/*搜索對應的長文件名*/
		 }
		X++;
		if(X==0xfE)break;
	}		
		LED_WR_INACT( );
		LED_RUN_INACT( );
		printf( "Take out\n" );
		while ( CH375DiskStatus != DISK_DISCONNECT ) xQueryInterrupt( );  /* 查詢CH375中斷并更新中斷狀態,等待U盤拔出 */
		LED_OUT_INACT( );  /* LED滅 */
		mDelaymS( 200 );
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美成人一区二区三区| 中文字幕精品综合| av在线播放不卡| 天堂一区二区在线| 国产精品亲子伦对白| 91精品国产日韩91久久久久久| 丁香婷婷综合色啪| 日韩av一二三| 综合电影一区二区三区| 欧美一区永久视频免费观看| av在线不卡电影| 国产一区二区三区在线观看精品| 亚洲在线一区二区三区| 国产三级三级三级精品8ⅰ区| 欧美中文字幕一区| bt7086福利一区国产| 美女尤物国产一区| 一区二区三区蜜桃网| 国产欧美1区2区3区| 欧美xxxx老人做受| 4hu四虎永久在线影院成人| 91首页免费视频| 高清国产一区二区| 狠狠网亚洲精品| 欧美bbbbb| 亚洲成a天堂v人片| 亚洲精品国产a| 中文字幕一区二区三区四区不卡 | 亚洲欧洲99久久| 久久久久久电影| 欧美成人精品1314www| 欧美精品久久天天躁| 欧美网站大全在线观看| 成人av午夜电影| 色吧成人激情小说| 成人av午夜电影| 成人免费电影视频| 粉嫩aⅴ一区二区三区四区五区| 日本中文一区二区三区| 午夜不卡av免费| 午夜激情综合网| 亚洲高清不卡在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲精选一二三| 亚洲欧美激情视频在线观看一区二区三区 | 久久综合久久久久88| 欧美一区二区三区日韩| 欧美一级欧美三级在线观看| 欧美一区二区三区视频免费| 91精品国产综合久久小美女| 欧美一区二区三区色| 欧美一区二区三区色| 精品欧美乱码久久久久久| 欧美一区二区三级| 欧美r级在线观看| 欧美一区二区三区性视频| 欧美妇女性影城| 欧美一区二区美女| 国产日韩一级二级三级| 日本一区二区三区高清不卡 | 日韩一区在线播放| 亚洲免费在线看| 亚洲中国最大av网站| 亚洲宅男天堂在线观看无病毒| 香蕉影视欧美成人| 精品亚洲免费视频| 国产一区 二区| 91一区二区三区在线观看| 欧美伦理视频网站| 欧美大片国产精品| 亚洲国产精品高清| 亚洲线精品一区二区三区八戒| 视频一区国产视频| 精品伊人久久久久7777人| 国产91精品露脸国语对白| 一本色道久久综合精品竹菊| 欧美三级欧美一级| 久久久亚洲综合| 日本一区二区视频在线| 亚洲国产日韩一区二区| 韩国精品久久久| 91麻豆精品国产无毒不卡在线观看 | 伊人婷婷欧美激情| 蜜桃av噜噜一区二区三区小说| 国产精品18久久久久久vr| 色综合婷婷久久| 欧美成人一区二区三区在线观看| 国产欧美综合色| 亚洲第一二三四区| 国产91清纯白嫩初高中在线观看| 欧美亚洲综合在线| 国产欧美va欧美不卡在线| 亚洲成a人v欧美综合天堂| 国产在线不卡视频| 欧美视频一区二| 日本一区二区视频在线| 日韩精品亚洲专区| 91毛片在线观看| 久久婷婷国产综合国色天香| 亚洲午夜精品久久久久久久久| 国产一区不卡视频| 欧美一区二区精品久久911| 亚洲日本在线看| 国产专区综合网| 69p69国产精品| 中文字幕一区日韩精品欧美| 九九九精品视频| 91尤物视频在线观看| 国产日韩欧美综合一区| 日av在线不卡| 在线看国产日韩| 国产精品动漫网站| 国产一区在线看| 欧美一区二区三区免费在线看 | 国产精品亚洲视频| 欧美一区二区啪啪| 亚洲第四色夜色| 日本精品一级二级| 国产精品国产三级国产aⅴ入口 | 精一区二区三区| 欧美日韩一区精品| 亚洲欧美一区二区三区极速播放| 国产一区二区在线影院| 欧美一级片在线看| 五月天激情综合| 欧洲在线/亚洲| 一区二区三区四区五区视频在线观看| 成人自拍视频在线观看| 精品va天堂亚洲国产| 日本大胆欧美人术艺术动态 | 国产欧美日韩在线| 国产精品自拍一区| 久久九九全国免费| 国产一区亚洲一区| 精品国产一区二区亚洲人成毛片| 美女免费视频一区二区| 日韩视频一区二区三区| 日韩精品午夜视频| 欧美一区二区三区在线观看视频 | 一区二区三区四区国产精品| 99久久免费精品高清特色大片| 亚洲国产成人午夜在线一区| 国产精品18久久久久久久久久久久| 久久日一线二线三线suv| 日韩极品在线观看| 欧美日韩三级在线| 亚洲成人在线网站| 7777精品伊人久久久大香线蕉超级流畅 | 一区二区三区高清在线| 日本道色综合久久| 日韩国产欧美在线视频| 欧美成人精品1314www| 韩国精品免费视频| 久久午夜国产精品| 精品一区精品二区高清| 国产欧美日韩精品一区| 成年人网站91| 亚洲一卡二卡三卡四卡五卡| 欧美电影影音先锋| 国内精品伊人久久久久影院对白| 日韩免费在线观看| 国产盗摄视频一区二区三区| 中文字幕一区二区三区四区不卡 | 国产精品美女久久久久av爽李琼 | 欧美一区二区日韩| 国产电影一区在线| 一区二区三区 在线观看视频| 91毛片在线观看| 午夜精品免费在线观看| 精品国产乱子伦一区| 本田岬高潮一区二区三区| 亚洲欧洲综合另类| 3d成人h动漫网站入口| 奇米一区二区三区| 国产亚洲综合在线| 欧美在线不卡视频| 久久福利视频一区二区| 中文字幕一区在线| 欧美一区二区三区免费大片| 白白色亚洲国产精品| 五月综合激情网| 国产欧美日韩在线视频| 欧美美女一区二区三区| 成人精品视频一区| 青草av.久久免费一区| **网站欧美大片在线观看| 日韩视频免费直播| 在线观看亚洲a| 粉嫩绯色av一区二区在线观看| 婷婷亚洲久悠悠色悠在线播放| 国产精品污www在线观看| 欧美精品久久久久久久多人混战| 成人一区二区三区视频在线观看 | 91浏览器在线视频| 久久电影网站中文字幕| 亚洲综合在线视频| 国产精品国产自产拍高清av王其 | 亚洲午夜精品在线| 国产精品视频九色porn| 精品国产乱码久久久久久牛牛|