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

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

?? ch375hft.c

?? USB接口芯片文件接口模塊CH375EVT
?? C
?? 第 1 頁 / 共 2 頁
字號:
		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盤必須要執行這一步才能工作 */
		do {
			mDelaymS( 100 );
			printf( "Ready ?\n" );
			i = CH375DiskReady( );  /* 查詢磁盤是否準備好,如果省掉這個子程序可以節約將近1KB的程序代碼 */
		} while ( i != ERR_SUCCESS );
/* 查詢磁盤物理容量 */
		printf( "DiskSize\n" );
		i = CH375DiskSize( );  /* 查詢磁盤物理容量,結果是以扇區為單位 */
		mStopIfError( i );
		printf( "TotalSize = %u MB \n", (UINT16)( 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一区二区三区免费野_久草精品视频
亚洲成a天堂v人片| 韩国一区二区在线观看| 国产人妖乱国产精品人妖| 91精品国产色综合久久久蜜香臀| 色就色 综合激情| 99久久99久久精品免费看蜜桃| 国产91精品在线观看| 成人教育av在线| 99re66热这里只有精品3直播| 99视频有精品| 91国偷自产一区二区三区成为亚洲经典| 欧美情侣在线播放| 国产乱码一区二区三区| 狠狠色狠狠色合久久伊人| 狠狠色丁香久久婷婷综合_中| 极品少妇xxxx精品少妇| 国产精品亚洲一区二区三区在线 | 欧美成人午夜电影| 日韩视频中午一区| 久久久精品欧美丰满| 中文字幕不卡的av| 亚洲欧美另类久久久精品2019| 亚洲视频一区二区免费在线观看| 亚洲欧美日韩系列| 亚洲成人免费在线| 首页国产丝袜综合| 国产在线乱码一区二区三区| 成人理论电影网| 色婷婷一区二区三区四区| 在线看国产日韩| 91精品国产麻豆| 久久新电视剧免费观看| 国产精品美女一区二区在线观看| 日韩伦理电影网| 午夜伦欧美伦电影理论片| 九色|91porny| 91亚洲精品久久久蜜桃网站| 欧美日韩在线观看一区二区 | 一区二区三区产品免费精品久久75| 亚洲国产日韩一级| 国产一区中文字幕| 91影院在线免费观看| 日韩一区二区三区观看| 欧美国产激情一区二区三区蜜月| 夜夜精品视频一区二区| 精品一区二区在线看| 99精品黄色片免费大全| 555www色欧美视频| 中文字幕精品在线不卡| 一区二区三区色| 精品亚洲成a人在线观看| 91免费观看在线| 日韩精品一区二区三区中文不卡| 国产精品久久毛片av大全日韩| 肉丝袜脚交视频一区二区| 国产99精品国产| 欧美日韩一区国产| 国产日韩欧美精品电影三级在线| 一区二区三区在线不卡| 国产精品1区二区.| 欧美一区二区三区视频| 亚洲欧美日韩久久精品| 国产精品一区二区视频| 欧美日韩精品欧美日韩精品| 日本一二三不卡| 蜜臀av性久久久久蜜臀av麻豆| 91视频国产观看| 精品国产一区二区三区不卡| 亚洲国产日韩一级| av福利精品导航| 久久久久久电影| 欧美aaaaaa午夜精品| 91免费版在线| 国产偷v国产偷v亚洲高清| 卡一卡二国产精品 | 欧美美女网站色| 自拍偷自拍亚洲精品播放| 国产自产v一区二区三区c| 精品视频在线视频| 依依成人精品视频| 成人综合婷婷国产精品久久 | 国产欧美一区二区在线| 日本成人在线网站| 欧美午夜精品理论片a级按摩| 久久精品亚洲麻豆av一区二区| 日本中文字幕不卡| 欧美综合欧美视频| 综合色中文字幕| 成人高清av在线| 2021中文字幕一区亚洲| 日韩精品乱码免费| 欧美色电影在线| 一区二区视频在线| 91亚洲国产成人精品一区二区三| 中文字幕精品一区二区精品绿巨人| 久久99精品一区二区三区三区| 欧美一区二区三区在线观看视频| 亚洲1区2区3区视频| 在线视频国产一区| 一区二区在线观看免费视频播放| 成年人午夜久久久| 一区在线播放视频| a级精品国产片在线观看| 日本一区二区成人| 岛国av在线一区| 亚洲国产精品精华液ab| 波多野洁衣一区| 日韩一区欧美一区| 色综合久久中文综合久久牛| 亚洲人成亚洲人成在线观看图片| 色哟哟在线观看一区二区三区| 亚洲精品久久嫩草网站秘色| 在线观看免费一区| 亚洲精品欧美二区三区中文字幕| 色88888久久久久久影院按摩 | 国产真实乱偷精品视频免| 欧美mv和日韩mv的网站| 国产一区不卡在线| 中文字幕第一区| 不卡一区二区三区四区| 亚洲免费在线视频一区 二区| 色综合欧美在线| 日韩经典中文字幕一区| 欧美mv日韩mv国产网站app| 国产成人夜色高潮福利影视| 亚洲视频你懂的| 欧美日韩在线一区二区| 久久电影网电视剧免费观看| 久久久99精品久久| 色又黄又爽网站www久久| 五月天国产精品| 久久久久久9999| 一本久久综合亚洲鲁鲁五月天| 亚洲一区二区四区蜜桃| 91.xcao| 亚洲一区二区三区影院| 日本高清不卡aⅴ免费网站| 午夜av一区二区| 久久午夜电影网| 色综合久久久久久久久久久| 午夜伊人狠狠久久| 99re视频这里只有精品| 亚洲一二三专区| 26uuu亚洲综合色欧美| 成人黄色777网| 五月激情综合婷婷| 国产精品天天看| 欧美精品自拍偷拍| 国产精品1区2区3区| 亚洲国产视频网站| 国产欧美一区二区在线| 欧美日韩精品免费| 成人在线视频首页| 亚洲www啪成人一区二区麻豆| 国产日韩欧美综合一区| 欧美日韩中文一区| 粉嫩欧美一区二区三区高清影视| 无码av免费一区二区三区试看| 久久精品亚洲国产奇米99| 欧美怡红院视频| 国产精品羞羞答答xxdd| 午夜视黄欧洲亚洲| 一区在线播放视频| 久久只精品国产| 欧美片网站yy| av网站一区二区三区| 精品一区二区在线视频| 亚洲成av人综合在线观看| 国产精品久久久久久久久图文区| 日韩欧美卡一卡二| 欧美综合一区二区三区| 成人动漫一区二区| 国产最新精品免费| 日韩精品欧美精品| 一区二区三区 在线观看视频| 国产亚洲一区字幕| 日韩一区二区中文字幕| 欧美系列在线观看| 91麻豆自制传媒国产之光| 国产精品一区二区久久不卡 | 韩国成人福利片在线播放| 亚洲第一精品在线| 亚洲精品国产精品乱码不99| 欧美激情中文字幕一区二区| 精品福利在线导航| 91精品国产入口| 欧美久久婷婷综合色| 在线免费观看一区| 色综合夜色一区| 成人va在线观看| 成人免费高清视频| 国产成人午夜精品5599| 精品一区二区三区免费视频| 蜜臀99久久精品久久久久久软件| 亚洲午夜久久久久久久久电影网| 亚洲精品第一国产综合野| 亚洲卡通动漫在线| 亚洲乱码精品一二三四区日韩在线| 中文子幕无线码一区tr | 毛片av一区二区三区|