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

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

?? ch374hft.c

?? CH374的開發程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
		}
		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為單位的容量
*/
		LED_RUN_ACT( );  /* 開始操作U盤 */
/* 讀取原文件 */
		printf( "Open\n" );
		strcpy( mCmdParam.Open.mPathName, "\\C51\\CH374HFT.C" );  /* 文件名,該文件在C51子目錄下 */
		i = CH374FileOpen( );  /* 打開文件 */
		if ( i == ERR_MISS_DIR || i == ERR_MISS_FILE ) {  /* 沒有找到文件 */
/* 列出文件 */
			if ( i == ERR_MISS_DIR ) pCodeStr = "\\*";  /* C51子目錄不存在則列出根目錄下的文件 */
			else pCodeStr = "\\C51\\CH*";  /* CH374HFT.C文件不存在則列出\C51子目錄下的以CH開頭的文件 */
			printf( "List file %s\n", pCodeStr );
			for ( count = 0; count < 10000; count ++ ) {  /* 最多搜索前10000個文件,實際上沒有限制 */
				strcpy( mCmdParam.Open.mPathName, pCodeStr );  /* 搜索文件名,*為通配符,適用于所有文件或者子目錄 */
				i = strlen( 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 = "找不到/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  /* 子程序庫支持寫操作 */
/* 產生新文件 */
		LED_WR_ACT( );  /* 寫操作 */
		printf( "Create\n" );
		strcpy( 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( mCmdParam.Create.mPathName, "\\OLD" );  將被刪除的文件名,在根目錄下
		i = CH374FileErase( );  刪除文件并關閉
		if ( i != ERR_SUCCESS ) printf( "Error: %02X\n", (UINT16)i );  顯示錯誤
*/
		LED_WR_INACT( );

/* 查詢磁盤信息 */
/*		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:
		LED_RUN_INACT( );
		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一区二区三区免费野_久草精品视频
一区二区中文视频| 欧美男男青年gay1069videost | 国产亚洲一区二区三区四区| av资源网一区| 99视频超级精品| 欧美网站一区二区| 欧美体内she精高潮| 国产精品一线二线三线精华| 国产在线麻豆精品观看| 成人一区二区三区视频在线观看| 欧美日韩精品欧美日韩精品| 欧美亚洲日本一区| 欧美一级高清片| 国产欧美精品一区| 亚洲天堂av一区| 亚洲自拍与偷拍| 欧美aaaaaa午夜精品| 成人动漫中文字幕| 欧美日韩视频在线一区二区| 精品99999| 亚洲激情图片一区| 国产在线麻豆精品观看| 欧美亚洲图片小说| 国产精品妹子av| 日本怡春院一区二区| 懂色av中文一区二区三区| 欧美三日本三级三级在线播放| 亚洲人精品一区| 爽好多水快深点欧美视频| 成人精品小蝌蚪| 欧美一区二区三区视频| 亚洲婷婷在线视频| 三级在线观看一区二区| 9l国产精品久久久久麻豆| 亚洲精品一区二区三区99| 一区二区三区蜜桃| 成人avav在线| 欧美韩国日本一区| 国产不卡视频一区| 国产欧美精品在线观看| 美女视频网站黄色亚洲| 91浏览器入口在线观看| 中文字幕日韩一区| 99精品黄色片免费大全| 亚洲精品一区二区三区四区高清 | 国产精品美女久久久久久2018| 91国产免费看| 亚洲国产精品久久久久婷婷884| 久久久久久久久久久久电影| 精品一区二区三区av| 69堂成人精品免费视频| 男女男精品网站| 日本一区二区三区在线观看| 不卡视频免费播放| 日韩理论电影院| 欧美日韩1区2区| 国产老女人精品毛片久久| 亚洲精品国产一区二区三区四区在线 | 91福利视频网站| 麻豆成人免费电影| 中文字幕中文字幕在线一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 色综合婷婷久久| 亚洲欧美日韩国产综合在线 | 欧美男女性生活在线直播观看| 欧美久久久久久久久| 国产麻豆视频一区二区| 中文字幕亚洲不卡| 欧美一区二区视频观看视频| 国产福利一区二区三区视频| 日韩和欧美的一区| 欧美国产丝袜视频| 日韩午夜av一区| 91美女在线视频| 成人激情黄色小说| 喷水一区二区三区| 亚洲不卡av一区二区三区| 国产精品久久久久久妇女6080| 丝袜诱惑亚洲看片| 国产精品福利影院| 久久久久久一级片| 欧美日韩一二三| 在线亚洲高清视频| 欧美在线看片a免费观看| 暴力调教一区二区三区| 成人精品gif动图一区| 国产高清不卡一区二区| 韩国精品在线观看| 国产99精品国产| 成人av在线一区二区三区| 国产精品自拍毛片| 成人激情文学综合网| 一本色道久久综合亚洲精品按摩| 自拍偷在线精品自拍偷无码专区| 懂色av一区二区夜夜嗨| 成人综合日日夜夜| 欧美丝袜丝交足nylons图片| 欧美一区二区视频在线观看2020 | 亚洲国产日韩a在线播放| 日韩理论片中文av| 六月丁香婷婷久久| 91视频.com| 7777精品久久久大香线蕉| 精品奇米国产一区二区三区| 日韩亚洲欧美综合| 亚洲欧美偷拍卡通变态| 男人的天堂久久精品| 99久久精品国产毛片| 欧美一区二区三区男人的天堂| 国产成人午夜精品5599 | 91高清视频在线| 日韩一级高清毛片| 亚洲国产精品黑人久久久| 亚洲国产aⅴ天堂久久| 国产suv精品一区二区6| 欧美日韩亚洲综合在线 | 黑人巨大精品欧美黑白配亚洲| 国产午夜精品理论片a级大结局| 91蜜桃婷婷狠狠久久综合9色| 另类小说欧美激情| 欧美理论在线播放| 亚洲永久免费av| 色婷婷综合久久| 亚洲色图制服诱惑| 成人午夜免费电影| 欧美高清一级片在线观看| 国产麻豆视频一区| 国产欧美日本一区视频| 丁香桃色午夜亚洲一区二区三区| 五月激情综合婷婷| 欧美日韩国产首页| 日韩精品一二三| 精品国产亚洲一区二区三区在线观看| 一本到一区二区三区| 欧美高清在线精品一区| 国产不卡在线视频| 自拍偷拍亚洲综合| 精品1区2区3区| 蜜桃在线一区二区三区| 久久视频一区二区| 色老头久久综合| 日本亚洲最大的色成网站www| 狂野欧美性猛交blacked| 精品剧情在线观看| 国产美女av一区二区三区| 亚洲视频一区二区在线观看| 色综合久久综合中文综合网| 亚洲一区免费观看| 日韩欧美国产电影| 久久激情五月婷婷| 亚洲伦在线观看| 久久在线观看免费| 欧美久久一二三四区| 成人小视频免费在线观看| 亚洲电影欧美电影有声小说| 国产喷白浆一区二区三区| 欧美色涩在线第一页| 成人av网站在线观看| 韩国精品主播一区二区在线观看| 国产91综合一区在线观看| 亚洲欧美日韩成人高清在线一区| 亚洲成人av一区二区| 国产精品私房写真福利视频| 精品国产sm最大网站| 欧美日韩美女一区二区| 韩国av一区二区三区| 美女网站色91| 麻豆91免费看| 精品一区二区三区在线观看国产| 成人精品小蝌蚪| 国产麻豆精品视频| 久久国产三级精品| 美女在线视频一区| 极品销魂美女一区二区三区| 乱中年女人伦av一区二区| 麻豆精品国产91久久久久久| 蜜臀久久99精品久久久画质超高清| 欧美三级中文字幕在线观看| 不卡在线观看av| 色综合亚洲欧洲| 欧美日韩另类一区| 欧美一区二区国产| 国产性天天综合网| 1000部国产精品成人观看| 亚洲小说欧美激情另类| 日韩中文字幕区一区有砖一区 | 亚洲人午夜精品天堂一二香蕉| 成人黄色小视频在线观看| www.日本不卡| 欧洲精品在线观看| 欧美午夜影院一区| 日韩一区二区三区免费看| 久久先锋资源网| 成人免费小视频| 久久国产精品99久久人人澡| 一本久道久久综合中文字幕| 欧美电影精品一区二区| 亚洲欧洲三级电影| 精品一区二区三区免费| 欧美高清性hdvideosex|