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

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

?? ch341dll.h

?? CH341DDLH under windows.zip
?? H
?? 第 1 頁 / 共 3 頁
字號:
// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28
//****************************************
//**  Copyright  (C)  W.ch  1999-2005   **
//**  Web:  http://www.winchiphead.com  **
//****************************************
//**  DLL for USB interface chip CH341  **
//**  C, VC5.0                          **
//****************************************
//
// USB總線接口芯片CH341并口應用層接口庫 V1.8
// 南京沁恒電子有限公司  作者: W.ch 2005.07
// CH341-DLL  V1.8
// 運行環境: Windows 98/ME, Windows 2000/XP
// support USB chip: CH341, CH341A
// USB => Parallel, I2C, SPI, JTAG ...
//

#ifndef		_CH341_DLL_H
#define		_CH341_DLL_H

#ifdef __cplusplus
extern "C" {
#endif

#define		mOFFSET( s, m )			( (ULONG) & ( ( ( s * ) 0 ) -> m ) )	// 定義獲取結構成員相對偏移地址的宏

#ifndef		max
#define		max( a, b )				( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )	// 較大值
#endif

#ifndef		min
#define		min( a, b )				( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )	// 較小值
#endif

#ifdef		ExAllocatePool
#undef		ExAllocatePool						// 刪除帶TAG的內存分配
#endif

#ifndef		NTSTATUS
typedef		LONG	NTSTATUS;					// 返回狀態
#endif


typedef	struct	_USB_SETUP_PKT {				// USB控制傳輸的建立階段的數據請求包結構
	UCHAR			mUspReqType;				// 00H 請求類型
	UCHAR			mUspRequest;				// 01H 請求代碼
	union	{
		struct	{
			UCHAR	mUspValueLow;				// 02H 值參數低字節
			UCHAR	mUspValueHigh;				// 03H 值參數高字節
		};
		USHORT		mUspValue;					// 02H-03H 值參數
	};
	union	{
		struct	{
			UCHAR	mUspIndexLow;				// 04H 索引參數低字節
			UCHAR	mUspIndexHigh;				// 05H 索引參數高字節
		};
		USHORT		mUspIndex;					// 04H-05H 索引參數
	};
	USHORT			mLength;					// 06H-07H 數據階段的數據長度
} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT;


#define		mCH341_PACKET_LENGTH	32			// CH341支持的數據包的長度
#define		mCH341_PKT_LEN_SHORT	8			// CH341支持的短數據包的長度


typedef	struct	_WIN32_COMMAND {				// 定義WIN32命令接口結構
	union	{
		ULONG		mFunction;					// 輸入時指定功能代碼或者管道號
		NTSTATUS	mStatus;					// 輸出時返回操作狀態
	};
	ULONG			mLength;					// 存取長度,返回后續數據的長度
	union	{
		mUSB_SETUP_PKT	mSetupPkt;				// USB控制傳輸的建立階段的數據請求
		UCHAR			mBuffer[ mCH341_PACKET_LENGTH ];	// 數據緩沖區,長度為0至255B
	};
} mWIN32_COMMAND, *mPWIN32_COMMAND;


// WIN32應用層接口命令
#define		IOCTL_CH341_COMMAND		( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED )	// 專用接口

#define		mWIN32_COMMAND_HEAD		mOFFSET( mWIN32_COMMAND, mBuffer )	// WIN32命令接口的頭長度

#define		mCH341_MAX_NUMBER		16			// 最多同時連接的CH341數

#define		mMAX_BUFFER_LENGTH		0x1000		// 數據緩沖區最大長度4096

#define		mMAX_COMMAND_LENGTH		( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH )	// 最大數據長度加上命令結構頭的長度

#define		mDEFAULT_BUFFER_LEN		0x0400		// 數據緩沖區默認長度1024

#define		mDEFAULT_COMMAND_LEN	( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN )	// 默認數據長度加上命令結構頭的長度


// CH341端點地址
#define		mCH341_ENDP_INTER_UP	0x81		// CH341的中斷數據上傳端點的地址
#define		mCH341_ENDP_INTER_DOWN	0x01		// CH341的中斷數據下傳端點的地址
#define		mCH341_ENDP_DATA_UP		0x82		// CH341的數據塊上傳端點的地址
#define		mCH341_ENDP_DATA_DOWN	0x02		// CH341的數據塊下傳端點的地址


// 設備層接口提供的管道操作命令
#define		mPipeDeviceCtrl			0x00000004	// CH341的綜合控制管道
#define		mPipeInterUp			0x00000005	// CH341的中斷數據上傳管道
#define		mPipeDataUp				0x00000006	// CH341的數據塊上傳管道
#define		mPipeDataDown			0x00000007	// CH341的數據塊下傳管道

// 應用層接口的功能代碼
#define		mFuncNoOperation		0x00000000	// 無操作
#define		mFuncGetVersion			0x00000001	// 獲取驅動程序版本號
#define		mFuncGetConfig			0x00000002	// 獲取USB設備配置描述符
#define		mFuncSetTimeout			0x00000009	// 設置USB通訊超時
#define		mFuncSetExclusive		0x0000000b	// 設置獨占使用
#define		mFuncResetDevice		0x0000000c	// 復位USB設備
#define		mFuncResetPipe			0x0000000d	// 復位USB管道
#define		mFuncAbortPipe			0x0000000e	// 取消USB管道的數據請求

// CH341并口專用的功能代碼
#define		mFuncSetParaMode		0x0000000f	// 設置并口模式
#define		mFuncReadData0			0x00000010	// 從并口讀取數據塊0
#define		mFuncReadData1			0x00000011	// 從并口讀取數據塊1
#define		mFuncWriteData0			0x00000012	// 向并口寫入數據塊0
#define		mFuncWriteData1			0x00000013	// 向并口寫入數據塊1
#define		mFuncWriteRead			0x00000014	// 先輸出再輸入
#define		mFuncBufferMode			0x00000020	// 設定緩沖上傳模式及查詢緩沖區中的數據長度
#define		mFuncBufferModeDn		0x00000021	// 設定緩沖下傳模式及查詢緩沖區中的數據長度


// USB設備標準請求代碼
#define		mUSB_CLR_FEATURE		0x01
#define		mUSB_SET_FEATURE		0x03
#define		mUSB_GET_STATUS			0x00
#define		mUSB_SET_ADDRESS		0x05
#define		mUSB_GET_DESCR			0x06
#define		mUSB_SET_DESCR			0x07
#define		mUSB_GET_CONFIG			0x08
#define		mUSB_SET_CONFIG			0x09
#define		mUSB_GET_INTERF			0x0a
#define		mUSB_SET_INTERF			0x0b
#define		mUSB_SYNC_FRAME			0x0c

// CH341控制傳輸的廠商專用請求類型
#define		mCH341_VENDOR_READ		0xC0		// 通過控制傳輸實現的CH341廠商專用讀操作
#define		mCH341_VENDOR_WRITE		0x40		// 通過控制傳輸實現的CH341廠商專用寫操作

// CH341控制傳輸的廠商專用請求代碼
#define		mCH341_PARA_INIT		0xB1		// 初始化并口
#define		mCH341_I2C_STATUS		0x52		// 獲取I2C接口的狀態
#define		mCH341_I2C_COMMAND		0x53		// 發出I2C接口的命令

// CH341并口操作命令代碼
#define		mCH341_PARA_CMD_R0		0xAC		// 從并口讀數據0
#define		mCH341_PARA_CMD_R1		0xAD		// 從并口讀數據1
#define		mCH341_PARA_CMD_W0		0xA6		// 向并口寫數據0
#define		mCH341_PARA_CMD_W1		0xA7		// 向并口寫數據1
#define		mCH341_PARA_CMD_STS		0xA0		// 獲取并口狀態

// CH341A并口操作命令代碼
#define		mCH341A_CMD_SET_OUTPUT	0xA1		// 設置并口輸出
#define		mCH341A_CMD_IO_ADDR		0xA2		// MEM帶地址讀寫/輸入輸出,從次字節開始為命令流
#define		mCH341A_CMD_SPI_STREAM	0xA8		// SPI接口的命令包,從次字節開始為數據流
#define		mCH341A_CMD_SIO_STREAM	0xA9		// SIO接口的命令包,從次字節開始為數據流
#define		mCH341A_CMD_I2C_STREAM	0xAA		// I2C接口的命令包,從次字節開始為I2C命令流
#define		mCH341A_CMD_UIO_STREAM	0xAB		// UIO接口的命令包,從次字節開始為命令流

// CH341A控制傳輸的廠商專用請求代碼
#define		mCH341A_BUF_CLEAR		0xB2		// 清除未完成的數據
#define		mCH341A_I2C_CMD_X		0x54		// 發出I2C接口的命令,立即執行
#define		mCH341A_DELAY_MS		0x5E		// 以亳秒為單位延時指定時間
#define		mCH341A_GET_VER			0x5F		// 獲取芯片版本

#define		mCH341_EPP_IO_MAX		( mCH341_PACKET_LENGTH - 1 )	// CH341在EPP/MEM方式下單次讀寫數據塊的最大長度
#define		mCH341A_EPP_IO_MAX		0xFF		// CH341A在EPP/MEM方式下單次讀寫數據塊的最大長度

#define		mCH341A_CMD_IO_ADDR_W	0x00		// MEM帶地址讀寫/輸入輸出的命令流:寫數據,位6-位0為地址,下一個字節為待寫數據
#define		mCH341A_CMD_IO_ADDR_R	0x80		// MEM帶地址讀寫/輸入輸出的命令流:讀數據,位6-位0為地址,讀出數據一起返回

#define		mCH341A_CMD_I2C_STM_STA	0x74		// I2C接口的命令流:產生起始位
#define		mCH341A_CMD_I2C_STM_STO	0x75		// I2C接口的命令流:產生停止位
#define		mCH341A_CMD_I2C_STM_OUT	0x80		// I2C接口的命令流:輸出數據,位5-位0為長度,后續字節為數據,0長度則只發送一個字節并返回應答
#define		mCH341A_CMD_I2C_STM_IN	0xC0		// I2C接口的命令流:輸入數據,位5-位0為長度,0長度則只接收一個字節并發送無應答
#define		mCH341A_CMD_I2C_STM_MAX	( min( 0x3F, mCH341_PACKET_LENGTH ) )	// I2C接口的命令流單個命令輸入輸出數據的最大長度
#define		mCH341A_CMD_I2C_STM_SET	0x60		// I2C接口的命令流:設置參數,位2=SPI的I/O數(0=單入單出,1=雙入雙出),位1位0=I2C速度(00=低速,01=標準,10=快速,11=高速)
#define		mCH341A_CMD_I2C_STM_US	0x40		// I2C接口的命令流:以微秒為單位延時,位3-位0為延時值
#define		mCH341A_CMD_I2C_STM_MS	0x50		// I2C接口的命令流:以亳秒為單位延時,位3-位0為延時值
#define		mCH341A_CMD_I2C_STM_DLY	0x0F		// I2C接口的命令流單個命令延時的最大值
#define		mCH341A_CMD_I2C_STM_END	0x00		// I2C接口的命令流:命令包提前結束

#define		mCH341A_CMD_UIO_STM_IN	0x00		// UIO接口的命令流:輸入數據D7-D0
#define		mCH341A_CMD_UIO_STM_DIR	0x40		// UIO接口的命令流:設定I/O方向D5-D0,位5-位0為方向數據
#define		mCH341A_CMD_UIO_STM_OUT	0x80		// UIO接口的命令流:輸出數據D5-D0,位5-位0為數據
#define		mCH341A_CMD_UIO_STM_US	0xC0		// UIO接口的命令流:以微秒為單位延時,位5-位0為延時值
#define		mCH341A_CMD_UIO_STM_END	0x20		// UIO接口的命令流:命令包提前結束


// CH341并口工作模式
#define		mCH341_PARA_MODE_EPP	0x00		// CH341并口工作模式為EPP方式
#define		mCH341_PARA_MODE_EPP17	0x00		// CH341A并口工作模式為EPP方式V1.7
#define		mCH341_PARA_MODE_EPP19	0x01		// CH341A并口工作模式為EPP方式V1.9
#define		mCH341_PARA_MODE_MEM	0x02		// CH341并口工作模式為MEM方式


// I/O方向設置位定義,直接輸入的狀態信號的位定義,直接輸出的位數據定義
#define		mStateBitERR			0x00000100	// 只讀可寫,ERR#引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitPEMP			0x00000200	// 只讀可寫,PEMP引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitINT			0x00000400	// 只讀可寫,INT#引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitSLCT			0x00000800	// 只讀可寫,SLCT引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitWAIT			0x00002000	// 只讀可寫,WAIT#引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitDATAS			0x00004000	// 只寫可讀,DATAS#/READ#引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitADDRS			0x00008000	// 只寫可讀,ADDRS#/ADDR/ALE引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitRESET			0x00010000	// 只寫,RESET#引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitWRITE			0x00020000	// 只寫,WRITE#引腳輸入狀態,1:高電平,0:低電平
#define		mStateBitSDA			0x00800000	// 只讀,SDA引腳輸入狀態,1:高電平,0:低電平


#define		MAX_DEVICE_PATH_SIZE	128			// 設備名稱的最大字符數
#define		MAX_DEVICE_ID_SIZE		64			// 設備ID的最大字符數


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品福利av| 欧美一区二区精品在线| 国产精品护士白丝一区av| 春色校园综合激情亚洲| 亚洲国产经典视频| 99久久久久久| 亚洲午夜三级在线| 日韩色在线观看| 黄色小说综合网站| 国产精品初高中害羞小美女文| 色综合中文字幕国产 | 久久精品一区二区三区不卡| 国内精品国产成人国产三级粉色| 国产亚洲午夜高清国产拍精品| 夫妻av一区二区| 一二三区精品福利视频| 欧美精品丝袜中出| 国产99久久久国产精品潘金网站| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91免费国产在线| 老汉av免费一区二区三区| 国产亚洲制服色| 欧美性猛交xxxxxx富婆| 精品在线视频一区| 中文字幕中文字幕在线一区| 欧美午夜免费电影| 精品一区二区三区香蕉蜜桃 | 欧美疯狂做受xxxx富婆| 激情综合色综合久久综合| 中文字幕制服丝袜一区二区三区 | 91精品福利在线| 秋霞午夜av一区二区三区| 日本一区二区三区四区| 欧美日韩免费不卡视频一区二区三区| 久久国产福利国产秒拍| 一区二区三区欧美亚洲| 久久综合久色欧美综合狠狠| 色婷婷综合久久久中文一区二区| 久久精品噜噜噜成人av农村| 亚洲色图欧美激情| 精品国产免费人成在线观看| 在线视频亚洲一区| 国产白丝网站精品污在线入口| 亚洲成人免费电影| 国产精品久久久久久亚洲伦| 欧美大片一区二区三区| 91精彩视频在线| 成人小视频免费在线观看| 另类小说综合欧美亚洲| 一区二区三区日韩精品视频| 欧美激情综合在线| 欧美成人性战久久| 欧美日韩一区二区在线观看视频| 岛国av在线一区| 麻豆国产一区二区| 五月激情综合婷婷| 一区二区在线电影| 国产精品日产欧美久久久久| 久久免费国产精品 | 欧美成人vr18sexvr| 91国模大尺度私拍在线视频| 成人app在线| 东方欧美亚洲色图在线| 久久99精品久久只有精品| 日韩国产高清影视| 亚洲小说欧美激情另类| 亚洲精品中文在线影院| 亚洲三级电影网站| 亚洲人成网站在线| 国产精品久久久久精k8| 国产欧美日韩综合精品一区二区 | 国产午夜精品一区二区三区视频| 日韩欧美一区在线观看| 日韩一级片在线观看| 日韩视频免费观看高清在线视频| 欧美人与禽zozo性伦| 欧美日本免费一区二区三区| 欧美男人的天堂一二区| 4438成人网| 欧美一级日韩一级| 日韩一区二区精品| 欧美电视剧在线观看完整版| 欧美一二三区精品| 欧美大胆一级视频| 久久人人爽人人爽| 亚洲国产精品99久久久久久久久| 国产精品欧美一区喷水| 国产精品久久久久久久蜜臀| 亚洲欧美日韩在线播放| 亚洲超碰精品一区二区| 日韩av电影天堂| 国内成+人亚洲+欧美+综合在线| 久久精品免费看| 国产精品456| 99re亚洲国产精品| 欧美三片在线视频观看| 日韩精品中文字幕一区二区三区| 欧美xxxxx裸体时装秀| 国产欧美一区二区精品忘忧草| 中文幕一区二区三区久久蜜桃| 亚洲天堂a在线| 亚洲国产日产av| 国内精品久久久久影院薰衣草| 国产99精品国产| 日本精品免费观看高清观看| 欧美日韩国产首页在线观看| 精品国产1区二区| 国产精品进线69影院| 亚洲第一激情av| 国产乱人伦精品一区二区在线观看| 激情另类小说区图片区视频区| 成人精品国产一区二区4080| 欧美视频三区在线播放| 精品盗摄一区二区三区| 中文字幕一区不卡| 日本免费新一区视频| 成人免费毛片片v| 欧美电影一区二区三区| 国产人成亚洲第一网站在线播放| 一区二区免费在线| 国产精品一二三四五| 欧美三区免费完整视频在线观看| 久久久亚洲欧洲日产国码αv| 亚洲资源中文字幕| 国产精品18久久久久久vr| 欧美视频你懂的| 国产精品久久久一本精品| 日韩中文字幕一区二区三区| 成人一区二区三区| 欧美一区二区久久久| 亚洲欧美日韩在线不卡| 国产传媒一区在线| 678五月天丁香亚洲综合网| 成人欧美一区二区三区视频网页| 麻豆国产欧美日韩综合精品二区 | 国产黄色精品网站| 欧美精品一二三| 亚洲视频香蕉人妖| 国产福利一区二区| 欧美一级欧美三级| 亚洲资源在线观看| 91亚洲精品一区二区乱码| 久久在线观看免费| 日韩在线一区二区| 日本高清无吗v一区| 国产精品视频在线看| 午夜精品久久久久久久久久久 | 国产乱码精品一区二区三区忘忧草| 成人丝袜18视频在线观看| 日韩欧美国产三级| 日韩和欧美的一区| 欧美日韩在线播放三区四区| 最新欧美精品一区二区三区| 国产一区二区三区视频在线播放| 欧美一级一区二区| 日韩经典一区二区| 欧美性三三影院| 一区二区三区四区在线免费观看 | 99久久免费视频.com| 国产午夜亚洲精品不卡| 国产在线视频精品一区| 精品免费日韩av| 久久精品国产**网站演员| 91精品国产综合久久香蕉的特点| 亚洲成人动漫在线观看| 欧美日韩亚洲另类| 亚洲国产cao| 欧美日韩在线三区| 亚洲第一久久影院| 91精品国产综合久久久蜜臀图片| 亚洲成a人片在线不卡一二三区| 在线日韩国产精品| 亚洲综合在线免费观看| 在线欧美小视频| 天天免费综合色| 欧美大片国产精品| 国产精品白丝av| 国产精品久久久久久久久搜平片 | 国产精品888| 国产午夜精品久久久久久免费视 | proumb性欧美在线观看| 亚洲视频免费观看| 欧美综合色免费| 喷白浆一区二区| 26uuu亚洲综合色| 成人精品在线视频观看| 一区二区三区在线观看网站| 欧美偷拍一区二区| 久久精品国产77777蜜臀| 久久精品人人爽人人爽| www.视频一区| 亚洲国产精品视频| 精品福利在线导航| www..com久久爱| 午夜日韩在线观看| 久久九九久久九九| 在线中文字幕一区| 久久99久久99| 亚洲女同女同女同女同女同69| 欧美美女喷水视频|