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

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

?? ch374hft.c

?? CH374 USB-HOST文件系統單片機子程序庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
					if ( CH374DiskStatus == DISK_CONNECT ) {  /* 有設備連接 */
						if ( CH374vHubPortCount ) {  /* 連接了一個USB-HUB,但可能沒有U盤 */
							printf( "No Udisk in USB_HUB\n" );
							break;
						}
						else {  /* 未知USB設備,有可能是U盤反應太慢,所以要再試試 */
						}
					}
				}
				if ( CH374DiskStatus >= DISK_MOUNTED ) {  /* 是U盤 */
					break;  /* 開始操作U盤 */
				}
				if ( CH374DiskStatus == DISK_CONNECT ) {  /* 多次嘗試還是不行,估計不是U盤 */
					if ( CH374vHubPortCount ) {  /* 連接了一個USB-HUB,但可能沒有U盤 */
/* 在while中等待HUB端口有U盤 */
					}
					else {  /* 未知USB設備,例如USB鍵盤、打印機等,而且已經試了很多次還不行 */
						printf( "Unknown device\n" );
						goto UnknownUsbDevice;
					}
				}
			}
		}
		LED_OUT_ACT( );  /* LED亮 */
#endif

#if DISK_BASE_BUF_LEN
		if ( DISK_BASE_BUF_LEN < CH374vSectorSize ) {  /* 檢查磁盤數據緩沖區是否足夠大,CH374vSectorSize是U盤的實際扇區大小 */
			printf( "Too large sector size\n" );
			goto UnknownUsbDevice;
		}
#endif

/* 查詢磁盤物理容量 */
/*		printf( "DiskSize\n" );
		i = CH374DiskSize( );  
		mStopIfError( i );
		printf( "TotalSize = %u MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec * ( CH374vSectorSize / 512 ) >> 11 ) );  顯示為以MB為單位的容量
*/
/* 讀取原文件 */
		printf( "Open\n" );
		strcpy( (char *)mCmdParam.Open.mPathName, "\\C51\\CH374HFT.C" );  /* 文件名,該文件在C51子目錄下 */
		i = CH374FileOpen( );  /* 打開文件 */
		if ( i == ERR_MISS_DIR || i == ERR_MISS_FILE ) {  /* 沒有找到文件 */
/* 列出文件 */
			if ( i == ERR_MISS_DIR ) pCodeStr = (PUINT8)"\\*";  /* C51子目錄不存在則列出根目錄下的文件 */
			else pCodeStr = (PUINT8)"\\C51\\CH*";  /* CH374HFT.C文件不存在則列出\C51子目錄下的以CH開頭的文件 */
			printf( "List file %s\n", pCodeStr );
			for ( count = 0; count < 10000; count ++ ) {  /* 最多搜索前10000個文件,實際上沒有限制 */
				strcpy( (char *)mCmdParam.Open.mPathName, (char *)pCodeStr );  /* 搜索文件名,*為通配符,適用于所有文件或者子目錄 */
				i = strlen( (char *)mCmdParam.Open.mPathName );
				mCmdParam.Open.mPathName[ i ] = 0xFF;  /* 根據字符串長度將結束符替換為搜索的序號,從0到254,如果是0xFF即255則說明搜索序號在CH374vFileSize變量中 */
				CH374vFileSize = count;  /* 指定搜索/枚舉的序號 */
				i = CH374FileOpen( );  /* 打開文件,如果文件名中含有通配符*,則為搜索文件而不打開 */
/* CH374FileEnum 與 CH374FileOpen 的唯一區別是當后者返回ERR_FOUND_NAME時那么對應于前者返回ERR_SUCCESS */
				if ( i == ERR_MISS_FILE ) break;  /* 再也搜索不到匹配的文件,已經沒有匹配的文件名 */
				if ( i == ERR_FOUND_NAME ) {  /* 搜索到與通配符相匹配的文件名,文件名及其完整路徑在命令緩沖區中 */
					printf( "  match file %04d#: %s\n", (unsigned int)count, mCmdParam.Open.mPathName );  /* 顯示序號和搜索到的匹配文件名或者子目錄名 */
					continue;  /* 繼續搜索下一個匹配的文件名,下次搜索時序號會加1 */
				}
				else {  /* 出錯 */
					mStopIfError( i );
					break;
				}
			}
			pCodeStr = (PUINT8)"找不到/C51/CH374HFT.C文件\xd\n";
			for ( i = 0; i != 255; i ++ ) {
				if ( ( my_buffer[i] = *pCodeStr ) == 0 ) break;
				pCodeStr++;
			}
			NewSize = i;  /* 新文件的長度 */
			SecCount = 1;  /* (NewSize+CH374vSectorSize-1)/CH374vSectorSize, 計算文件的扇區數,因為讀寫是以扇區為單位的 */
		}
		else {  /* 找到文件或者出錯 */
			mStopIfError( i );
/*			printf( "Query\n" );
			i = CH374FileQuery( );  查詢當前文件的信息
			mStopIfError( i );*/
			printf( "Read\n" );
			if ( CH374vFileSize > sizeof( my_buffer ) ) {  /* 原文件長度大于緩沖區長度,一次讀取不完 */
				SecCount = sizeof( my_buffer ) / CH374vSectorSize;  /* 由于演示板用的62256只有32K字節,其中CH374子程序用CH374vSectorSize個字節,所以只讀取不超過60個扇區,也就是不超過30K字節 */
				NewSize = sizeof( my_buffer );  /* 由于RAM有限所以限制長度 */
			}
			else {  /* 如果原文件較小,那么使用原長度 */
				SecCount = ( CH374vFileSize + CH374vSectorSize - 1 ) / CH374vSectorSize;  /* 計算文件的扇區數,因為讀寫是以扇區為單位的,先加CH374vSectorSize-1是為了讀出文件尾部不足1個扇區的部分 */
				NewSize = (UINT16)CH374vFileSize;  /* 原文件的長度 */
			}
			printf( "Size=%ld, Len=%d, Sec=%d\n", CH374vFileSize, NewSize, (UINT16)SecCount );
			mCmdParam.ReadX.mSectorCount = SecCount;  /* 讀取全部數據,如果超過60個扇區則只讀取60個扇區 */
			mCmdParam.ReadX.mDataBuffer = &my_buffer[0];  /* 指向文件數據緩沖區的起始地址 */
			CH374vFileSize += CH374vSectorSize - 1;  /* 默認情況下,以扇區方式讀取數據時,無法讀出文件尾部不足1個扇區的部分,所以必須臨時加大文件長度以讀取尾部零頭 */
			i = CH374FileReadX( );  /* 從文件讀取數據 */
			CH374vFileSize -= CH374vSectorSize - 1;  /* 恢復原文件長度 */
			mStopIfError( i );
/*
		如果文件比較大,一次讀不完,可以再調用CH374FileReadX繼續讀取,文件指針自動向后移動
		while ( 1 ) {
			c = 32;   每次讀取32個扇區
			mCmdParam.ReadX.mSectorCount = c;   指定讀取的扇區數
			mCmdParam.ReadX.mDataBuffer = &my_buffer[0];  指向文件數據緩沖區的起始地址
			CH374FileReadX();   讀完后文件指針自動后移
			處理數據
			if ( mCmdParam.ReadX.mSectorCount < c ) break;   實際讀出的扇區數較小則說明文件已經結束
		}

	    如果希望從指定位置開始讀寫,可以移動文件指針
		mCmdParam.Locate.mSectorOffset = 3;  跳過文件的前3個扇區開始讀寫
		i = CH374FileLocate( );
		mCmdParam.ReadX.mSectorCount = 10;
		mCmdParam.ReadX.mDataBuffer = &my_buffer[0];  指向文件數據緩沖區的起始地址
		CH374FileReadX();   直接讀取從文件的第(CH374vSectorSize*3)個字節開始的數據,前3個扇區被跳過

	    如果希望將新數據添加到原文件的尾部,可以移動文件指針
		i = CH374FileOpen( );
		mCmdParam.Locate.mSectorOffset = 0xffffffff;  移到文件的尾部,以扇區為單位,如果原文件是3字節,則從CH374vSectorSize個字節處開始添加
		i = CH374FileLocate( );
		mCmdParam.WriteX.mSectorCount = 10;
		mCmdParam.WriteX.mDataBuffer = &my_buffer[0];
		CH374FileWriteX();   在原文件的后面添加數據

使用CH374FileReadX可以自行定義數據緩沖區的起始地址
		mCmdParam.ReadX.mSectorCount = 2;
		mCmdParam.ReadX.mDataBuffer = 0x2000;  將讀出的數據放到2000H開始的緩沖區中
		CH374FileReadX();   從文件中讀取2個扇區到指定緩沖區

使用CH374FileWriteX可以自行定義數據緩沖區的起始地址
		mCmdParam.WiiteX.mSectorCount = 2;
		mCmdParam.WriteX.mDataBuffer = 0x4600;  將4600H開始的緩沖區中的數據寫入
		CH374FileWriteX();   將指定緩沖區中的數據寫入2個扇區到文件中

*/
			printf( "Close\n" );
			i = CH374FileClose( );  /* 關閉文件 */
			mStopIfError( i );

			i = my_buffer[100];
			my_buffer[100] = 0;  /* 置字符串結束標志,最多顯示100個字符 */
			printf( "Line 1: %s\n", my_buffer );
			my_buffer[100] = i;  /* 恢復原字符 */
			for ( count=0; count < NewSize; count ++ ) {  /* 將文件中的小寫字符轉換為大寫 */
				c = my_buffer[ count ];
				if ( c >= 'a' && c <= 'z' ) my_buffer[ count ] = c - ( 'a' - 'A' );
			}
		}

#ifdef EN_DISK_WRITE  /* 子程序庫支持寫操作 */
/* 產生新文件 */
		printf( "Create\n" );
		strcpy( (char *)mCmdParam.Create.mPathName, "\\NEWFILE.TXT" );  /* 新文件名,在根目錄下 */
		i = CH374FileCreate( );  /* 新建文件并打開,如果文件已經存在則先刪除后再新建 */
		mStopIfError( i );
		printf( "Write\n" );
		mCmdParam.WriteX.mSectorCount = SecCount;  /* 寫入所有扇區的數據 */
		mCmdParam.WriteX.mDataBuffer = &my_buffer[0];  /* 指向文件數據緩沖區的起始地址 */
		i = CH374FileWriteX( );  /* 向文件寫入數據 */
		mStopIfError( i );
/* 默認情況下,如果扇區數mCmdParam.WriteX.mSectorCount不為0那么CH374FileWriteX只負責寫入數據而不修改文件長度,
   如果長時間不寫入數據則應該更新文件長度,防止突然斷電后前面寫入的數據與文件長度不相符,
   如果需要寫完數據后立即修改/更新文件長度,那么可以置扇區數mCmdParam.WriteX.mSectorCount為0后調用CH374FileWriteX強行更新文件長度,
   如果確定不會突然斷電或者后面很快有數據不斷寫入則不必更新文件長度,可以提高速度并減少U盤損耗(U盤內部的內存壽命有限,不宜頻繁改寫) */
		printf( "Modify\n" );
		mCmdParam.Modify.mFileAttr = 0xff;  /* 輸入參數: 新的文件屬性,為0FFH則不修改 */
		mCmdParam.Modify.mFileTime = 0xffff;  /* 輸入參數: 新的文件時間,為0FFFFH則不修改,使用新建文件產生的默認時間 */
		mCmdParam.Modify.mFileDate = MAKE_FILE_DATE( 2004, 5, 18 );  /* 輸入參數: 新的文件日期: 2004.05.18 */
		mCmdParam.Modify.mFileSize = NewSize;  /* 輸入參數: 如果原文件較小,那么新的文件長度與原文件一樣長,否則被RAM所限,如果文件長度大于64KB,那么NewSize必須為UINT32 */
		i = CH374FileModify( );  /* 修改當前文件的信息,修改日期和長度 */
		mStopIfError( i );
		printf( "Close\n" );
		mCmdParam.Close.mUpdateLen = 0;  /* 不要自動計算文件長度,如果自動計算,那么該長度總是CH374vSectorSize的倍數 */
		i = CH374FileClose( );
		mStopIfError( i );

/* 刪除某文件 */
/*		printf( "Erase\n" );
		strcpy( (char *)mCmdParam.Create.mPathName, "\\OLD" );  將被刪除的文件名,在根目錄下
		i = CH374FileErase( );  刪除文件并關閉
		if ( i != ERR_SUCCESS ) printf( "Error: %02X\n", (UINT16)i );  顯示錯誤
*/

/* 查詢磁盤信息 */
/*		printf( "Disk\n" );
		i = CH374DiskQuery( );
		mStopIfError( i );
		printf( "Fat=%d, Total=%ld, Free=%ld\n", (UINT16)mCmdParam.Query.mDiskFat, mCmdParam.Query.mTotalSector, mCmdParam.Query.mFreeSector );
*/
#endif
UnknownUsbDevice:
		printf( "Take out\n" );
		while ( 1 ) {  /* 支持USB-HUB */
			CH374DelaymS( 10 );  /* 沒必要頻繁查詢 */
			if ( CH374DiskConnect( ) != ERR_SUCCESS ) break;  /* 查詢方式: 檢查磁盤是否連接并更新磁盤狀態,返回成功說明連接 */
		}
		LED_OUT_INACT( );  /* LED滅 */
		CH374DelaymS( 200 );
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品盗摄一区二区三区| 亚洲欧洲日产国产综合网| 国产日韩欧美综合一区| 综合欧美亚洲日本| 日本视频中文字幕一区二区三区| 国内精品写真在线观看| 欧美午夜不卡在线观看免费| 欧美成人精品福利| 午夜欧美在线一二页| 成人免费视频免费观看| 欧美一区二区精美| 亚洲伦在线观看| 国产精品 日产精品 欧美精品| 91精品国产91久久久久久一区二区| 国产精品福利影院| 成人免费高清在线观看| 久久精品人人做| 精品一二线国产| 91麻豆精品91久久久久久清纯 | 亚洲不卡在线观看| av在线综合网| 国产精品女同一区二区三区| 国产呦精品一区二区三区网站| 欧美高清你懂得| 一区二区三区免费观看| 色嗨嗨av一区二区三区| 国产精品久久国产精麻豆99网站| 国产精品一区一区三区| 久久中文娱乐网| 国产美女娇喘av呻吟久久| 欧美精品一区二区三区视频| 青青草国产精品97视觉盛宴| 欧美日韩国产精品成人| 亚洲综合精品自拍| 在线观看精品一区| 亚洲精品视频一区| 成人网页在线观看| 亚洲欧洲国产日本综合| 日韩精品久久久久久| 日韩视频在线永久播放| 日韩黄色一级片| 精品免费国产二区三区| 奇米色777欧美一区二区| 日韩精品一区二区三区在线播放| 视频一区二区中文字幕| 91传媒视频在线播放| 亚洲乱码国产乱码精品精98午夜 | 欧美精品123区| 日韩有码一区二区三区| 884aa四虎影成人精品一区| 久久精品久久久精品美女| 日韩一区二区免费电影| 精品一区二区三区在线视频| 欧美成人激情免费网| 国产1区2区3区精品美女| 久久精品视频免费观看| 国产精品综合网| 国产精品美女久久福利网站| 国产尤物一区二区在线| 亚洲同性gay激情无套| 丁香亚洲综合激情啪啪综合| 亚洲综合久久久| 91精品国产综合久久久久久漫画| 国产精品69久久久久水密桃| 精品国产91久久久久久久妲己| 成人激情av网| 亚洲三级视频在线观看| 日韩你懂的电影在线观看| 99国产精品国产精品毛片| 亚洲国产成人91porn| 久久久五月婷婷| 99在线精品一区二区三区| 日韩av在线免费观看不卡| 国产亚洲欧美日韩在线一区| 国产a精品视频| 亚洲一区二区三区美女| 精品久久久久久久久久久久久久久久久| 精品一区二区成人精品| 久久综合视频网| 欧美挠脚心视频网站| 六月丁香婷婷久久| 一区二区在线电影| 欧美r级电影在线观看| 在线观看视频一区| 精品一区中文字幕| 一区二区三区四区视频精品免费 | 亚洲日本乱码在线观看| 色综合一个色综合亚洲| 亚洲国产欧美在线| 国产精品日日摸夜夜摸av| 在线国产电影不卡| 99久久精品国产观看| 午夜精品一区二区三区免费视频| 欧美国产丝袜视频| 91精品国产全国免费观看| 色吧成人激情小说| 激情综合网av| 日本不卡视频在线观看| 中文字幕中文字幕在线一区 | 欧洲一区二区av| 不卡一区二区在线| 青青草国产精品亚洲专区无| 亚洲成人在线网站| 亚洲欧美自拍偷拍色图| 国产亚洲综合性久久久影院| 欧美日韩一卡二卡三卡| 色噜噜夜夜夜综合网| 国产成人精品免费网站| 午夜精品成人在线| 一区二区三区日本| 又紧又大又爽精品一区二区| 久久久99久久| 欧美日韩国产影片| 色综合久久66| 欧美亚洲一区三区| 一本一道久久a久久精品综合蜜臀| 久久69国产一区二区蜜臀| 日韩极品在线观看| 亚洲成人激情社区| 亚洲午夜成aⅴ人片| 亚洲精品videosex极品| 国产精品久久久99| 91精品久久久久久久99蜜桃 | 五月婷婷综合在线| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲女同一区二区| 亚洲欧洲日本在线| 亚洲一级二级三级| 亚洲另类一区二区| 亚洲一区二区高清| 亚洲影视在线播放| 日日嗨av一区二区三区四区| 日韩国产欧美在线观看| 亚洲男人的天堂在线观看| 一区在线播放视频| 亚洲国产视频a| 日韩在线观看一区二区| 国产一区视频网站| 成人在线综合网站| 国产精品一二三| 99热这里都是精品| 欧美年轻男男videosbes| 91麻豆精品国产自产在线| 久久精品人人做人人综合 | 色综合婷婷久久| 91官网在线观看| 精品捆绑美女sm三区| 337p粉嫩大胆噜噜噜噜噜91av | 欧美成人女星排名| 欧美三级乱人伦电影| 日韩欧美美女一区二区三区| 欧美r级在线观看| 亚洲欧美日韩系列| 亚洲bdsm女犯bdsm网站| 经典一区二区三区| 国产经典欧美精品| 337p亚洲精品色噜噜噜| 2022国产精品视频| 悠悠色在线精品| 日本色综合中文字幕| 91原创在线视频| 欧美浪妇xxxx高跟鞋交| 中文字幕不卡在线观看| 亚洲在线成人精品| 成人av影院在线| 欧美日韩一卡二卡| 最新国产成人在线观看| 亚洲自拍另类综合| 成人app在线| 日韩一级二级三级| 五月婷婷激情综合| 久久精品国产一区二区三 | av午夜一区麻豆| 欧美日韩国产a| 亚洲国产精品传媒在线观看| 亚洲国产一区二区三区| 国产精品一级黄| 欧美日韩高清在线播放| 一区二区三区自拍| 国模冰冰炮一区二区| 欧美日韩国产天堂| 日韩精品在线网站| 麻豆国产精品777777在线| 9久草视频在线视频精品| 2020日本不卡一区二区视频| 亚洲精品国产精华液| 国产福利精品一区| 久久综合九色综合欧美亚洲| 五月天精品一区二区三区| 欧美艳星brazzers| 国产精品理论片| caoporn国产一区二区| 精品理论电影在线观看| 精品综合久久久久久8888| 在线观看日韩精品| 性做久久久久久免费观看 | 国产一区 二区 三区一级| 欧美老女人第四色| 日韩av在线免费观看不卡| 欧美影院午夜播放|