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

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

?? ch374hff.h

?? 這是使用MSP430通過CH375芯片讀寫USB外設的C語言程序,已經編譯通過,沒有問題,讀者可以提高修改相應端口來符合自己的器件
?? H
?? 第 1 頁 / 共 4 頁
字號:
#endif
#ifndef NO_DEFAULT_CH374_F_QUERY
extern UINT8	CH374FileQuery( void );		/* 查詢當前文件的信息 */
#endif
#ifndef NO_DEFAULT_CH374_RESET
extern void		CH374Reset( void );			/* 復位CH374 */
#endif
extern void xQueryInterrupt( void );		/* 外部定義的被CH374程序庫調用的子程序,查詢CH374中斷 */
#ifdef EN_DISK_WRITE
extern void xDelayAfterWrite( void );		/* 外部定義的被CH374程序庫調用的子程序,寫操作后延時 */
#endif
extern void xFileNameEnumer( void );		/* 外部定義的被CH374程序庫調用的子程序,文件名枚舉回調子程序 */
extern UINT8 CH374LibInit( void );			/* 初始化CH374程序庫和CH374芯片,操作成功返回0 */

#else

UINT8	CH374_READ_REGISTER( UINT8 mAddr );					/* 外部定義的被CH374程序庫調用的子程序,從指定寄存器讀取數據 */
void	CH374_WRITE_REGISTER( UINT8 mAddr, UINT8 mData );	/* 外部定義的被CH374程序庫調用的子程序,向指定寄存器寫入數據 */
void	CH374_READ_BLOCK( UINT8 mAddr, UINT8 mLen, PUINT8 mBuf );	/* 外部定義的被CH374程序庫調用的子程序,從指定起始地址讀出數據塊 */
void	CH374_WRITE_BLOCK( UINT8 mAddr, UINT8 mLen, PUINT8 mBuf );	/* 外部定義的被CH374程序庫調用的子程序,向指定起始地址寫入數據塊 */
PUINT8	CH374_READ_BLOCK64( UINT8 mAddr, PUINT8 mBuf );	/* 外部定義的被CH374程序庫調用的子程序,從雙緩沖區讀出64字節的數據塊,返回當前地址 */
#ifdef EN_DISK_WRITE
PUINT8	CH374_WRITE_BLOCK64( UINT8 mAddr, PUINT8 mBuf );	/* 外部定義的被CH374程序庫調用的子程序,向雙緩沖區寫入64字節的數據塊,返回當前地址 */
#endif
void	CH374_WRITE_BLOCK_C( UINT8 mLen, PUINT8C mBuf );	/* 外部定義的被CH374程序庫調用的子程序,向RAM_HOST_TRAN寫入常量型數據塊 */

CMD_PARAM_I mCmdParam;					/* 命令參數 */
BULK_ONLY_CMD_X mBOC;					/* BO協議的命令包 */
#if DISK_BASE_BUF_LEN
#ifdef DISK_BASE_BUF_ADDR
__no_init	UINT8  DISK_BASE_BUF[ DISK_BASE_BUF_LEN ] @ DISK_BASE_BUF_ADDR;	/* 外部RAM的磁盤數據緩沖區,緩沖區長度為一個扇區的長度,起始地址必須為2字節邊界地址 */
#else
__no_init	UINT8  DISK_BASE_BUF[ DISK_BASE_BUF_LEN ];	/* 外部RAM的磁盤數據緩沖區,緩沖區長度為一個扇區的長度,起始地址必須為2字節邊界地址 */
#endif
#endif
#ifdef FILE_DATA_BUF_LEN
#ifdef FILE_DATA_BUF_ADDR
__no_init	UINT8  FILE_DATA_BUF[ FILE_DATA_BUF_LEN ] @ FILE_DATA_BUF_ADDR;	/* 外部RAM的文件數據緩沖區,緩沖區長度不小于一次讀寫的數據長度,起始地址必須為2字節邊界地址 */
#else
__no_init	UINT8  FILE_DATA_BUF[ FILE_DATA_BUF_LEN ];	/* 外部RAM的文件數據緩沖區,緩沖區長度不小于一次讀寫的數據長度,起始地址必須為2字節邊界地址 */
#endif
UINT8	CH374FileRead( void )		/* 從當前文件讀取數據 */
{
	mCmdParam.ReadX.mDataBuffer = &FILE_DATA_BUF[0];  /* 指向文件數據緩沖區 */
	return( CH374FileReadX( ) );
}
#ifdef EN_DISK_WRITE
UINT8	CH374FileWrite( void )		/* 向當前文件寫入數據 */
{
	mCmdParam.WriteX.mDataBuffer = &FILE_DATA_BUF[0];  /* 指向文件數據緩沖區 */
	return( CH374FileWriteX( ) );
}
#endif
#endif

/* 以下程序可以根據需要修改 */

#ifndef NO_DEFAULT_CH374_F_ENUM			/* 在應用程序中定義NO_DEFAULT_CH374_F_ENUM可以禁止默認的枚舉文件程序,然后用自行編寫的程序代替它 */
UINT8	CH374FileEnumer( void )			/* 枚舉文件 */
{
	UINT8	status;
	status = CH374FileOpen( );
	if ( status == ERR_FOUND_NAME ) status = ERR_SUCCESS;  /* 操作成功 */
	return( status );
}
#endif

#ifndef NO_DEFAULT_CH374_F_QUERY		/* 在應用程序中定義NO_DEFAULT_CH374_F_QUERY可以禁止默認的查詢當前文件的信息程序,然后用自行編寫的程序代替它 */
UINT8	CH374FileQuery( void )			/* 查詢當前文件的信息 */
{
	PUINT8	buf;
	UINT8	count;
	buf = (PUINT8)( & mCmdParam.Modify.mFileSize );
	for ( count = sizeof( mCmdParam.Modify ); count != 0; count -- ) {
		*buf = 0xFF;  /* 輸入參數全部無效,僅查詢不修改 */
		buf ++;
	}
	return( CH374FileModify( ) );
}
#endif

#ifndef NO_DEFAULT_CH374_RESET			/* 在應用程序中定義NO_DEFAULT_CH374_RESET可以禁止默認的CH374復位程序,然后用自行編寫的程序代替它 */
void	CH374Reset( void )				/* 復位CH374 */
{
	CH374_WRITE_REGISTER( REG_SYS_CTRL, CH374_READ_REGISTER( REG_SYS_CTRL ) | BIT_CTRL_RESET_NOW );  /* 芯片軟件復位控制 */
	CH374_WRITE_REGISTER( REG_SYS_CTRL, CH374_READ_REGISTER( REG_SYS_CTRL ) & (UINT8)( ~ BIT_CTRL_RESET_NOW ) );  /* 結束復位 */
	CH374DelaymS( 10 );  /* 延時10毫秒 */
}
#endif

#ifndef NO_DEFAULT_CH374_INT			/* 在應用程序中定義NO_DEFAULT_CH374_INT可以禁止默認的中斷處理程序,然后用自行編寫的程序代替它 */
#if LIB_CFG_INT_EN == 0					/* CH374的INT#引腳連接方式為"查詢方式" */
void xQueryInterrupt( void )			/* 查詢CH374中斷 */
{
#ifdef CH374_INT_WIRE					/* 連接了CH374的中斷引腳 */
	while ( CH374_INT_WIRE );  /* 如果CH374的中斷引腳輸出高電平則等待 */
#else									/* 未連接CH374的中斷引腳 */
	while ( ( CH374_READ_REGISTER( REG_INTER_FLAG ) & ( BIT_IF_DEV_DETECT | BIT_IF_TRANSFER ) ) == 0 );  /* 查詢中斷標志寄存器 */
#endif
}
#else									/* LIB_CFG_INT_EN != 0, CH374的INT#引腳連接方式為"中斷方式" */
void xQueryInterrupt( void )			/* 查詢中斷狀態,等待硬件中斷 */
{
	while ( CH374IntStatus == 0 );  /* 子程序庫調用該子程序之前CH374IntStatus=0,硬件中斷后,由中斷服務程序置為非0的實際中斷狀態后返回 */
}
interrupt[ CH374_INT_VECTOR ]	void	CH374Interrupt( void )	/* CH374中斷服務程序,使用寄存器組1,由CH374的INT#的低電平或者下降沿觸發單片機中斷 */
{
	CH374IntStatus = 1;  /* 已接收到CH374中斷則置標志 */
#ifdef CLEAR_INT_MARK
	CLEAR_INT_MARK( );  /* 某些單片機需要由軟件清除中斷標志 */
#endif
}
#endif
#endif

#ifdef EN_DISK_WRITE
#ifndef NO_DEFAULT_DELAY_WRITE			/* 在應用程序中定義NO_DEFAULT_DELAY_WRITE可以禁止默認的寫操作后延時程序,然后用自行編寫的程序代替它 */
#pragma optimize=none
void xDelayAfterWrite( void )			/* 寫操作后延時 */
{
#if LIB_CFG_NO_DLY == 0					/* 寫后延時 */
	UINT16	count;
	for ( count = 200; count != 0; count -- );  /* 延時200uS左右,8x125nS@8MHz */
#endif
}
#endif
#endif

#ifndef NO_DEFAULT_FILE_ENUMER			/* 在應用程序中定義NO_DEFAULT_FILE_ENUMER可以禁止默認的文件名枚舉回調程序,然后用自行編寫的程序代替它 */
void xFileNameEnumer( void )			/* 文件名枚舉回調子程序 */
{
/* 如果指定枚舉序號CH374vFileSize為0xFFFFFFFF后調用FileOpen,那么每搜索到一個文件FileOpen都會調用本回調程序,
   回調程序xFileNameEnumer返回后,FileOpen遞減CH374vFileSize并繼續枚舉直到搜索不到文件或者目錄。建議做法是,
   在調用FileOpen之前定義一個全局變量為0,當FileOpen回調本程序后,本程序由CH374vFdtOffset得到結構FAT_DIR_INFO,
   分析結構中的DIR_Attr以及DIR_Name判斷是否為所需文件名或者目錄名,記錄相關信息,并將全局變量計數增量,
   當FileOpen返回后,判斷返回值如果是ERR_MISS_FILE或ERR_FOUND_NAME都視為操作成功,全局變量為搜索到的有效文件數。
   如果在本回調程序xFileNameEnumer中將CH374vFileSize置為1,那么可以通知FileOpen提前結束搜索。以下是回調程序例子 */
#if 0
#ifdef FILE_DATA_BUF_LEN
	UINT8			i;
	UINT16			FileCount;
	P_FAT_DIR_INFO	pFileDir;
	PUINT8			NameBuf;
	pFileDir = (P_FAT_DIR_INFO)( pDISK_BASE_BUF + CH374vFdtOffset );  /* 當前FDT的起始地址 */
	FileCount = (UINT16)( 0xFFFFFFFF - CH374vFileSize );  /* 當前文件名的枚舉序號,CH374vFileSize初值是0xFFFFFFFF,找到文件名后遞減 */
	if ( FileCount < FILE_DATA_BUF_LEN / 12 ) {  /* 檢查緩沖區是否足夠存放,假定每個文件名需占用12個字節存放 */
		NameBuf = & FILE_DATA_BUF[ FileCount * 12 ];  /* 計算保存當前文件名的緩沖區地址 */
		for ( i = 0; i < 11; i ++ ) NameBuf[ i ] = pFileDir -> DIR_Name[ i ];  /* 復制文件名,長度為11個字符,未處理空格 */
		if ( pFileDir -> DIR_Attr & ATTR_DIRECTORY ) NameBuf[ i ] = 1;  /* 判斷是目錄名 */
		NameBuf[ i ] = 0;  /* 文件名結束符 */
	}
#endif
#endif
}
#endif

#ifdef EXT_SEC_INTERFACE
UINT8 xDiskSectorAccess( PUINT32 mLba, UINT8 mMode )	/* 該子程序由CH374的子程序庫調用,用于以扇區為單位存取磁盤 */
{
#if 0
	UINT8	SectCnt;
	UINT8	OpCmd;
	UINT32	StartLba;
	PUINT8	DataBuf;
	StartLba = *mLba;  /* 將讀寫的起始扇區號 */
	switch ( mMode ) {
		case 0:  /* 讀一個扇區到pDISK_BASE_BUF */
			SectCnt = 1;
			DataBuf = pDISK_BASE_BUF;
			OpCmd = CMD_READ_SECTOR;
/* 如果操作失敗必須調用CH374DirtyBuffer( ) */
			break;
		case 1:  /* 從pDISK_BASE_BUF寫一個扇區 */
			SectCnt = 1;
			DataBuf = pDISK_BASE_BUF;
			OpCmd = CMD_WRITE_SECTOR;
/* 如果操作失敗必須調用CH374DirtyBuffer( ) */
			break;
		case 2:  /* 讀mCmdParam.ReadX.mLbaCount個扇區到mCmdParam.ReadX.mDataBuffer */
			SectCnt = mCmdParam.ReadX.mLbaCount;
			DataBuf = mCmdParam.ReadX.mDataBuffer;
			OpCmd = CMD_READ_SECTOR;
/* 必須更新mCmdParam.ReadX.mDataBuffer(累計緩沖區地址)和CH374vCurrentOffset(累計文件指針)和mCmdParam.ReadX.mSectorCount(累計扇區數) */
			break;
		case 3:  /* 從mCmdParam.WriteX.mDataBuffer寫mCmdParam.WriteX.mLbaCount個扇區 */
			SectCnt = mCmdParam.WriteX.mLbaCount;
			DataBuf = mCmdParam.WriteX.mDataBuffer;
			OpCmd = CMD_WRITE_SECTOR;
/* 必須更新mCmdParam.WriteX.mDataBuffer(累計緩沖區地址)和CH374vCurrentOffset(累計文件指針)和mCmdParam.WriteX.mSectorCount(累計扇區數) */
			break;
		default:
			return( ERR_CH374_ERROR );  /* 未知操作 */
	}
/* 以扇區為單位進行讀寫操作,起始扇區號為StartLba,扇區數為SectCnt,緩沖區為DataBuf */
#else
	mLba++;
	mMode++;
#endif
	return( ERR_SUCCESS );
}
#endif

UINT8	CH374LibInit( void )  /* 初始化CH374程序庫和CH374芯片,操作成功返回0 */
{
	if ( CH374GetVer( ) < CH374_LIB_VER ) return( 0xFF );  /* 獲取當前子程序庫的版本號,版本太低則返回錯誤 */
#if DISK_BASE_BUF_LEN
	pDISK_BASE_BUF = & DISK_BASE_BUF[0];  /* 指向外部RAM的磁盤數據緩沖區 */
#endif
	return( CH374Init( ) );  /* 初始化CH374 */
}

#endif

#ifdef __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品入口麻豆九色| 国产成人综合亚洲网站| 欧美激情在线观看视频免费| 欧美精品在线一区二区三区| 欧美最猛黑人xxxxx猛交| 成人av网站免费观看| 国产成人激情av| 国产一区二区在线看| 国产资源精品在线观看| 国产一区美女在线| 久久99热这里只有精品| 狠狠色综合日日| 国产美女精品人人做人人爽| 狠狠色伊人亚洲综合成人| 国产一区二区在线免费观看| 黄色精品一二区| 国产精品夜夜嗨| 99精品国产99久久久久久白柏| 欧美日韩一区二区不卡| 欧美色大人视频| 欧美日韩视频第一区| 91精品国产综合久久久久久久| 日韩欧美一级二级三级久久久| 欧美刺激脚交jootjob| www日韩大片| 国产精品美女久久久久久久久久久 | 亚洲精品欧美在线| 午夜欧美2019年伦理| 免费高清在线视频一区·| 韩国成人在线视频| 99综合电影在线视频| 色欧美日韩亚洲| 日韩一区二区三区观看| 国产亚洲欧美色| 一区二区三区小说| 日本成人超碰在线观看| 成人小视频在线观看| 欧洲一区在线电影| 精品国产髙清在线看国产毛片| 久久精品人人做人人爽97| 亚洲码国产岛国毛片在线| 日本亚洲欧美天堂免费| 成人免费毛片高清视频| 欧美日韩夫妻久久| 国产女同互慰高潮91漫画| 丝袜美腿亚洲色图| 成人动漫在线一区| 91精品国产综合久久久久久| 国产精品网站在线| 免费成人在线网站| 欧美精品乱人伦久久久久久| 亚洲欧美aⅴ...| 欧美极品美女视频| 久久精子c满五个校花| 亚洲免费观看在线视频| 国精产品一区一区三区mba视频| 色哟哟在线观看一区二区三区| 这里只有精品电影| 亚洲免费观看高清完整版在线观看熊 | 亚洲精品在线观看网站| 一区二区三区精品久久久| 国产乱国产乱300精品| 欧美日韩国产精品成人| 亚洲三级小视频| 精品一区二区三区免费观看 | 日韩三区在线观看| 成人精品鲁一区一区二区| 精品久久久久久无| 国产曰批免费观看久久久| 日本道在线观看一区二区| 久久免费偷拍视频| 激情欧美一区二区三区在线观看| 欧美亚洲尤物久久| 国产精品电影院| 国产成人av一区| 久久久久久麻豆| 国产一区在线观看视频| 日韩免费成人网| 男人操女人的视频在线观看欧美 | 91精品视频网| 亚洲国产视频a| 在线精品国精品国产尤物884a| 久久先锋资源网| 免费在线观看一区二区三区| 久久久久久久久久久久久久久99| 久久久久国色av免费看影院| 美国十次了思思久久精品导航| 在线播放日韩导航| 天天色天天爱天天射综合| 欧美色网一区二区| 五月激情六月综合| 欧美日韩国产天堂| 亚洲国产综合91精品麻豆| 欧美午夜不卡视频| 日本大胆欧美人术艺术动态| 欧美日韩大陆在线| 麻豆精品国产91久久久久久| 精品久久久久一区| 久久 天天综合| 国产精品视频在线看| 91欧美一区二区| 亚洲高清视频中文字幕| 欧美一区二区在线看| 国产一区二区免费视频| 中文字幕精品三区| 欧美综合在线视频| 国产一区不卡视频| 成人欧美一区二区三区白人 | 99国内精品久久| 亚洲观看高清完整版在线观看| 欧美日韩国产一二三| 韩国av一区二区| 中文字幕亚洲一区二区va在线| 欧美视频精品在线观看| 国产一区免费电影| 亚洲综合无码一区二区| 亚洲精品一区二区三区影院 | 色综合咪咪久久| 亚洲国产精品久久艾草纯爱| 精品日韩在线一区| 一本大道久久a久久综合婷婷 | 777午夜精品视频在线播放| 麻豆成人免费电影| 亚洲激情校园春色| 久久久久99精品一区| 欧美亚一区二区| 成人精品一区二区三区四区| 天天免费综合色| 综合自拍亚洲综合图不卡区| 精品日产卡一卡二卡麻豆| 色综合中文字幕国产| 国产一区在线精品| 日韩精品免费视频人成| 亚洲美女视频一区| 亚洲综合精品久久| 色综合亚洲欧洲| 国产精品区一区二区三区| 欧美三级在线播放| a亚洲天堂av| 国产一区二区三区综合| 五月天一区二区三区| 亚洲欧洲精品一区二区三区不卡| 日韩一区二区不卡| 欧美精品自拍偷拍动漫精品| 不卡一区中文字幕| 国产高清久久久久| 久久国产剧场电影| 免费在线欧美视频| 日韩精品午夜视频| 亚洲国产精品久久久久秋霞影院| ●精品国产综合乱码久久久久 | 欧美狂野另类xxxxoooo| 91丨九色丨蝌蚪丨老版| 欧美视频一区在线| 色综合网色综合| 色综合久久天天| 色婷婷久久一区二区三区麻豆| 成人免费观看视频| 丁香婷婷综合网| 成人免费视频网站在线观看| 国产精品伊人色| 国产69精品久久99不卡| 激情国产一区二区 | 精品国产乱码久久久久久免费| 91麻豆精品久久久久蜜臀| 欧美精品日韩综合在线| 欧美日韩一卡二卡三卡| 欧美日韩亚洲综合在线| 欧美日韩黄视频| 欧美一区二区三区思思人 | 日本成人在线不卡视频| 麻豆精品视频在线观看| 激情欧美一区二区| 成人激情综合网站| 91在线精品一区二区三区| 91久久精品一区二区三区| 欧美午夜电影网| 日韩一二三四区| 久久久久久日产精品| 国产精品对白交换视频 | 亚洲精品va在线观看| 亚洲一卡二卡三卡四卡五卡| 午夜影视日本亚洲欧洲精品| 久久成人18免费观看| 《视频一区视频二区| 国产福利不卡视频| 亚洲成a人v欧美综合天堂| 日韩激情中文字幕| 激情国产一区二区| 精品播放一区二区| 国产精品电影院| 日韩激情一二三区| 成人美女视频在线看| 色88888久久久久久影院按摩 | 在线观看免费视频综合| 91精品国产色综合久久ai换脸| 国产偷国产偷精品高清尤物| 亚洲激情第一区| 极品美女销魂一区二区三区| 色国产精品一区在线观看|