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

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

?? ch375hft.c

?? USB驅動芯片簡介及驅動源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
		mDelaymS( 1 );  /* 寫后延時,可選的,大多數U盤不需要 */
		memcpy( FILE_DATA_BUF+0, FILE_DATA_BUF+(total & ~ 511), total & 511 );  /* 將剛才已寫入U盤的零頭數據復制到緩沖區的頭部 */
		total &= 511;  /* 緩沖區中只剩下剛才已寫入U盤的零頭數據,繼續保留在緩沖區中是為了方便以后在其后面追加數據 */
		if ( total ) NewSize = CH375vFileSize - 512 + total;  /* 以扇區為單位,有零頭數據,計算出真正的文件長度(有效數據的長度) */
		else NewSize = CH375vFileSize;  /* 以扇區為單位,沒有零頭數據,文件長度是512的倍數 */
		mCmdParam.Modify.mFileSize = NewSize;   /* 輸入參數: 新的文件長度,扇區模式下涉及到零頭數據不便自動更新長度 */
		mCmdParam.Modify.mFileAttr = 0xff;  /* 輸入參數: 新的文件屬性,為0FFH則不修改 */
		mCmdParam.Modify.mFileTime = 0xffff;  /* 輸入參數: 新的文件時間,為0FFH則不修改 */
		mCmdParam.Modify.mFileDate = 0xffff;  /* 輸入參數: 新的文件日期,為0FFH則不修改 */
		i = CH375FileModify( );   /* 修改當前文件的信息,修改文件長度 */
		mStopIfError( i );
		printf( "Current file size is %ld\n", CH375vFileSize );
		mCmdParam.Locate.mSectorOffset = 0xffffffff;  /* 移到文件的尾部,以扇區為單位,所以會忽略文件尾部的零頭數據 */
		i = CH375FileLocate( );  /* 重新回到原文件的尾部,下面如果再寫入數據將覆蓋尾部零頭數據,不過該零頭數據有一份副本保留在緩沖區中,所以請放心 */
		mStopIfError( i );
	}
	else if ( total >= FILE_DATA_BUF_LEN - 512 ) {  /* 緩沖區中的數據快要滿了,所以應該先將緩沖區中的原有數據寫入U盤 */
		mCmdParam.Write.mSectorCount = total >> 9;  /* 將緩沖區中的字節數轉換為扇區數(除以512),最后的零頭數據先不管 */
		i = CH375FileWrite( );  /* 以扇區為單位向文件寫入數據,寫入緩沖區中的所有數據,不含最后的零頭 */
		mStopIfError( i );
		memcpy( FILE_DATA_BUF+0, FILE_DATA_BUF+(total & ~ 511), total & 511 );  /* 將剛才未寫入U盤的零頭數據復制到緩沖區的頭部 */
		total &= 511;  /* 緩沖區中只剩下剛才未寫入U盤的零頭數據 */
/*		mCmdParam.Write.mSectorCount = 0;  如果全局變量CH375LibConfig的位4為0,可以指定寫入0扇區,用于刷新文件的長度
		CH375FileWrite( );  以扇區為單位向文件寫入數據,因為是0扇區寫入,所以只用于更新文件的長度,當階段性寫入數據后,可以用這種辦法更新文件長度 */
	}
}

main( ) {
	UINT8	i, month, date, hour;
	UINT16	year, adc;
	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 < 10; 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盤 */

/* 如果MY_ADC.TXT文件已經存在則添加數據到尾部,如果不存在則新建文件 */
		printf( "Open\n" );
		mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "/MY_ADC.TXT" );  /* 文件名,該文件在根目錄下 */
		i = CH375FileOpen( );  /* 打開文件 */
		if ( i == ERR_SUCCESS ) {  /* 文件存在并且已經被打開,移動文件指針到尾部以便添加數據 */
			printf( "File size = %ld\n", CH375vFileSize );  /* V1.5以上子程序庫在成功打開文件后,全局變量CH375vFileSize中是文件當前長度 */
			printf( "Locate tail\n" );
			mCmdParam.Locate.mSectorOffset = 0xffffffff;  /* 移到文件的尾部,CH375子程序庫內部是將文件長度按扇區長度512進行取整處理 */
			i = CH375FileLocate( );  /* 以扇區為單位移到文件尾部,如果文件尾部有不足一個扇區的零頭數據則被忽略,如果不做處理那么零頭數據將可能被寫入數據覆蓋 */
			mStopIfError( i );
			total = CH375vFileSize & 511;  /* 上次保存文件時如果尾部有零頭數據,那么先取得零頭字節數,不滿扇區長度的零碎數據 */
			printf( "Read last tail = %d Bytes\n", total );
			CH375vFileSize += 511;  /* 人為地將文件長度增加一個扇區減1,以便讀出最后一個扇區中的零頭數據 */
			mCmdParam.Read.mSectorCount = 1;  /* 讀取文件尾部的零頭數據,如果不人為增加文件長度,那么由于文件長度按512取整,導致尾部零頭數據無法讀出 */
			i = CH375FileRead( );  /* 從文件讀取尾部零頭數據,如果原尾部沒有零頭數據,那么什么也讀不到,返回時mCmdParam.Read.mSectorCount為實際讀出扇區數 */
			mStopIfError( i );
			CH375vFileSize -= 511;  /* 恢復真正的文件長度 */
			mCmdParam.Locate.mSectorOffset = 0xffffffff;  /* 移到文件的尾部,以扇區為單位,所以會忽略文件尾部的零頭數據 */
			i = CH375FileLocate( );  /* 重新回到原文件的尾部,下面如果寫入數據將覆蓋原尾部零頭數據,不過原零頭數據剛才已經被讀入內存,所以請放心 */
			mStopIfError( i );
		}
		else if ( i == ERR_MISS_FILE ) {  /* 沒有找到文件,必須新建文件 */
			LED_WR_ACT( );  /* 寫操作 */
			printf( "Create\n" );
//			mCopyCodeStringToIRAM( mCmdParam.Create.mPathName, "/MY_ADC.TXT" );  /* 文件名,該文件在根目錄下,剛才已經提供給CH375FileOpen */
			i = CH375FileCreate( );  /* 新建文件并打開,如果文件已經存在則先刪除后再新建 */
			mStopIfError( i );
			total = 0;  /* 此前沒有零頭數據 */
		}
		else mStopIfError( i );  /* 打開文件時出錯 */
		LED_WR_ACT( );  /* 寫操作 */
		printf( "Write begin\n" );
		total += sprintf( FILE_DATA_BUF + total, "在本次添加數據之前,該文件已有數據的長度是 %ld 字節\xd\xa", CH375vFileSize );  /* 將新數據添加到緩沖區的尾部,累計緩沖區內的數據長度 */
		mFlushBufferToDisk( 0 );  /* 自動刷新緩沖區,檢查緩沖區是否已滿,滿則寫盤 */
		printf( "Write ADC data\n" );
		TR0=1;  /* 用定時器0的計數值代替ADC數據 */
		for ( month = 1; month != 12; month ++ ) {  /* 因為測試板上沒有實時時鐘芯片,所以用循環方式模擬月份 */
			for ( date = 1; date != 30; date ++ ) {  /* 因為測試板上沒有實時時鐘芯片,所以用循環方式模擬日期 */
				year = 2004;  /* 假定為2004年 */
				hour = TL1 & 0x1F;  /* 因為測試板上沒有實時時鐘芯片,所以用定時器1的計數代替進行演示 */
/*				adc = get_adc_data( ); */
				adc = ( (UINT16)TH0 << 8 ) | TL0;  /* 因為測試板上沒有ADC,所以用定時器0的計數代替ADC數據演示 */
				total += sprintf( FILE_DATA_BUF + total, "Year=%04d, Month=%02d, Date=%02d, Hour=%02d, ADC_data=%u\xd\xa", year, (UINT16)month, (UINT16)date, (UINT16)hour, adc );  /* 將二制制數據格式為一行字符串 */
				if ( month == 6 && ( date & 0x0F ) == 0 ) mFlushBufferToDisk( 1 );  /* 強制刷新緩沖區,定期強制刷新緩沖區,這樣在突然斷電后可以減少數據丟失 */
				else mFlushBufferToDisk( 0 );  /* 自動刷新緩沖區,檢查緩沖區是否已滿,滿則寫盤 */
				printf( "Current total is %d\n", total );  /* 用于監控檢查 */
			}
		}
		printf( "Write end\n" );
		total += sprintf( FILE_DATA_BUF + total, " ********************************* " );  /* 將新數據添加到緩沖區的尾部,累計緩沖區內的數據長度 */
		total += sprintf( FILE_DATA_BUF + total, "這次的ADC數據到此結束,程序即將退出\xd\xa" );  /* 將新數據添加到緩沖區的尾部,累計緩沖區內的數據長度 */
		mFlushBufferToDisk( 1 );  /* 強制刷新緩沖區,因為系統要退出了,所以必須強制刷新 */
		printf( "Close\n" );
		mCmdParam.Close.mUpdateLen = 0;  /* 因為強制刷新緩沖區時已經更新了文件長度,所以這里不需要自動更新文件長度 */
		i = CH375FileClose( );  /* 關閉文件 */
		mStopIfError( i );
		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一区二区三区免费野_久草精品视频
午夜精品aaa| 亚洲一区二区三区自拍| 91国产视频在线观看| 国产高清久久久久| 国内精品国产成人国产三级粉色 | 最新久久zyz资源站| 精品成人免费观看| 欧美一级精品大片| 337p亚洲精品色噜噜噜| 欧美私人免费视频| 欧洲精品视频在线观看| 欧美性一级生活| 精品视频1区2区| 欧美日韩精品欧美日韩精品一| 欧洲国产伦久久久久久久| 91在线一区二区三区| 一本一道久久a久久精品| 91麻豆国产在线观看| 色婷婷av一区| 欧美午夜免费电影| 欧美一区午夜精品| 日韩欧美在线网站| 久久综合999| 国产精品久久久久久久久晋中| 亚洲天天做日日做天天谢日日欢| 亚洲色图.com| 青青草成人在线观看| 经典一区二区三区| www.欧美色图| 欧美日韩一区二区电影| 欧美成人在线直播| 国产精品视频看| 亚洲一区二区成人在线观看| 日韩高清中文字幕一区| 国产伦精品一区二区三区免费迷 | 国产精品视频一二三| 亚洲免费在线观看视频| 日韩av一级电影| 国产一区二区三区四区五区入口| 成人久久视频在线观看| 在线观看视频欧美| 欧美精品一区二区三区高清aⅴ| 国产精品美日韩| 日本一不卡视频| 岛国一区二区在线观看| 欧美日韩国产成人在线91| 337p粉嫩大胆色噜噜噜噜亚洲| 成人免费在线播放视频| 奇米综合一区二区三区精品视频| 成人高清视频免费观看| 欧美乱妇一区二区三区不卡视频| 久久这里都是精品| 一区二区免费视频| 国产麻豆视频一区| 欧美一级xxx| 伊人色综合久久天天人手人婷| 经典三级在线一区| 欧美三级资源在线| 日韩毛片视频在线看| 久久se精品一区精品二区| 欧美亚洲一区二区在线观看| 国产日韩精品久久久| 日韩电影在线一区| 一本色道久久加勒比精品| 欧美激情中文字幕| 蜜臂av日日欢夜夜爽一区| 欧美亚洲动漫另类| 国产精品激情偷乱一区二区∴| 精品一区二区久久久| 欧美精品自拍偷拍动漫精品| 亚洲视频在线观看一区| 国产成人精品三级麻豆| 久久这里只有精品6| 蜜桃一区二区三区在线观看| 欧美日本在线视频| 亚洲欧美日韩在线| 99vv1com这只有精品| 国产精品水嫩水嫩| 成人aaaa免费全部观看| 国产亚洲精品中文字幕| 国产在线播放一区| 久久―日本道色综合久久| 裸体一区二区三区| 精品三级在线看| 国产在线视频不卡二| 日韩视频免费观看高清在线视频| 婷婷中文字幕一区三区| 欧美久久久久中文字幕| 日韩国产精品91| 欧美一区二区三级| 蜜臀av在线播放一区二区三区| 91精品国产手机| 麻豆91小视频| 久久久99久久精品欧美| 激情综合五月婷婷| 久久综合丝袜日本网| 韩国精品免费视频| 亚洲国产精品成人综合| 99久久久国产精品免费蜜臀| 最新不卡av在线| 97精品久久久午夜一区二区三区 | 国产欧美精品一区二区色综合朱莉| 久久99精品久久久久久久久久久久| 日韩一级免费观看| 国产一区在线观看视频| 国产精品人成在线观看免费 | 91一区二区三区在线观看| 亚洲激情图片qvod| 欧美精选一区二区| 韩国一区二区在线观看| 中文字幕巨乱亚洲| 欧美无砖专区一中文字| 毛片av中文字幕一区二区| 久久亚洲精华国产精华液| 国产精品资源网站| 1024国产精品| 制服丝袜亚洲网站| 国产成人精品综合在线观看 | 色悠久久久久综合欧美99| 亚洲视频在线观看一区| 日韩午夜在线观看| 国产精品白丝jk黑袜喷水| 亚洲免费资源在线播放| 日韩欧美国产综合| 色综合中文字幕| 男女男精品网站| 国产精品久久99| 欧美一区国产二区| jlzzjlzz亚洲女人18| 日韩电影在线观看电影| 国产精品嫩草影院com| 欧美一区三区四区| 91黄色免费观看| 国产精品一色哟哟哟| 亚洲影视资源网| 国产视频一区在线播放| 在线播放欧美女士性生活| 91蜜桃视频在线| 国产精品亚洲成人| 亚洲h动漫在线| 国产精品不卡一区| 久久美女艺术照精彩视频福利播放 | 国产欧美一区二区三区网站 | 免费观看30秒视频久久| 亚洲激情在线激情| 国产精品久久久久国产精品日日| 欧美二区乱c少妇| 91网站视频在线观看| 国产一区二区成人久久免费影院| 亚洲二区视频在线| 亚洲猫色日本管| 日本一区二区综合亚洲| 精品久久久久久久久久久院品网 | 91麻豆精品久久久久蜜臀| 91麻豆123| 成人一区二区三区中文字幕| 精品一区二区在线看| 免费成人在线网站| 天天操天天干天天综合网| 亚洲精品五月天| 亚洲免费在线看| 一区二区三区四区不卡在线| 亚洲欧洲av在线| 亚洲色图一区二区| 最新欧美精品一区二区三区| 中文字幕一区二区三区不卡在线 | 中文字幕亚洲成人| 国产精品国产成人国产三级 | av午夜一区麻豆| 国产成都精品91一区二区三| 国产综合成人久久大片91| 毛片一区二区三区| 国产精选一区二区三区| 国产乱子伦一区二区三区国色天香 | 久久男人中文字幕资源站| 久久尤物电影视频在线观看| 欧美zozozo| 国产日本欧洲亚洲| 国产精品美女www爽爽爽| 亚洲欧洲日韩在线| 亚洲精品国产无套在线观| 亚洲成人黄色小说| 蜜芽一区二区三区| 韩国欧美国产一区| 成人高清视频在线观看| 99r精品视频| 欧美电影一区二区三区| 欧美zozozo| 亚洲三级在线观看| 午夜亚洲福利老司机| 蜜桃视频一区二区| 成人国产视频在线观看| 欧美日韩免费电影| 久久久国产午夜精品| 最近中文字幕一区二区三区| 午夜精品福利一区二区三区av| 懂色中文一区二区在线播放| 欧美午夜不卡在线观看免费| 欧美精品一区二区不卡| 日本一区二区三级电影在线观看|