?? ch341dll.h
字號:
typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中斷服務程序
ULONG iStatus ); // 中斷狀態數據,參考下面的位說明
// 位7-位0對應CH341的D7-D0引腳
// 位8對應CH341的ERR#引腳, 位9對應CH341的PEMP引腳, 位10對應CH341的INT#引腳, 位11對應CH341的SLCT引腳
HANDLE WINAPI CH341OpenDevice( // 打開CH341設備,返回句柄,出錯則無效
ULONG iIndex ); // 指定CH341設備序號,0對應第一個設備
VOID WINAPI CH341CloseDevice( // 關閉CH341設備
ULONG iIndex ); // 指定CH341設備序號
ULONG WINAPI CH341GetVersion( ); // 獲得DLL版本號,返回版本號
ULONG WINAPI CH341DriverCommand( // 直接傳遞命令給驅動程序,出錯則返回0,否則返回數據長度
ULONG iIndex, // 指定CH341設備序號,V1.6以上DLL也可以是設備打開后的句柄
mPWIN32_COMMAND ioCommand ); // 命令結構的指針
// 該程序在調用后返回數據長度,并且仍然返回命令結構,如果是讀操作,則數據返回在命令結構中,
// 返回的數據長度在操作失敗時為0,操作成功時為整個命令結構的長度,例如讀一個字節,則返回mWIN32_COMMAND_HEAD+1,
// 命令結構在調用前,分別提供:管道號或者命令功能代碼,存取數據的長度(可選),數據(可選)
// 命令結構在調用后,分別返回:操作狀態代碼,后續數據的長度(可選),
// 操作狀態代碼是由WINDOWS定義的代碼,可以參考NTSTATUS.H,
// 后續數據的長度是指讀操作返回的數據長度,數據存放在隨后的緩沖區中,對于寫操作一般為0
ULONG WINAPI CH341GetDrvVersion( ); // 獲得驅動程序版本號,返回版本號,出錯則返回0
BOOL WINAPI CH341ResetDevice( // 復位USB設備
ULONG iIndex ); // 指定CH341設備序號
BOOL WINAPI CH341GetDeviceDescr( // 讀取設備描述符
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存描述符
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341GetConfigDescr( // 讀取配置描述符
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存描述符
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341SetIntRoutine( // 設定中斷服務程序
ULONG iIndex, // 指定CH341設備序號
mPCH341_INT_ROUTINE iIntRoutine ); // 指定中斷服務程序,為NULL則取消中斷服務,否則在中斷時調用該程序
BOOL WINAPI CH341ReadInter( // 讀取中斷數據
ULONG iIndex, // 指定CH341設備序號
PULONG iStatus ); // 指向一個雙字單元,用于保存讀取的中斷狀態數據,見下行
// 位7-位0對應CH341的D7-D0引腳
// 位8對應CH341的ERR#引腳, 位9對應CH341的PEMP引腳, 位10對應CH341的INT#引腳, 位11對應CH341的SLCT引腳
BOOL WINAPI CH341AbortInter( // 放棄中斷數據讀操作
ULONG iIndex ); // 指定CH341設備序號
BOOL WINAPI CH341SetParaMode( // 設置并口模式
ULONG iIndex, // 指定CH341設備序號
ULONG iMode ); // 指定并口模式: 0為EPP模式/EPP模式V1.7, 1為EPP模式V1.9, 2為MEM模式
BOOL WINAPI CH341InitParallel( // 復位并初始化并口,RST#輸出低電平脈沖
ULONG iIndex, // 指定CH341設備序號
ULONG iMode ); // 指定并口模式: 0為EPP模式/EPP模式V1.7, 1為EPP模式V1.9, 2為MEM模式, >= 0x00000100 保持當前模式
BOOL WINAPI CH341ReadData0( // 從0#端口讀取數據塊
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存讀取的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341ReadData1( // 從1#端口讀取數據塊
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存讀取的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341AbortRead( // 放棄數據塊讀操作
ULONG iIndex ); // 指定CH341設備序號
BOOL WINAPI CH341WriteData0( // 向0#端口寫出數據塊
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備寫出的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH341WriteData1( // 向1#端口寫出數據塊
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備寫出的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH341AbortWrite( // 放棄數據塊寫操作
ULONG iIndex ); // 指定CH341設備序號
BOOL WINAPI CH341GetStatus( // 通過CH341直接輸入數據和狀態
ULONG iIndex, // 指定CH341設備序號
PULONG iStatus ); // 指向一個雙字單元,用于保存狀態數據,參考下面的位說明
// 位7-位0對應CH341的D7-D0引腳
// 位8對應CH341的ERR#引腳, 位9對應CH341的PEMP引腳, 位10對應CH341的INT#引腳, 位11對應CH341的SLCT引腳, 位23對應CH341的SDA引腳
// 位13對應CH341的BUSY/WAIT#引腳, 位14對應CH341的AUTOFD#/DATAS#引腳,位15對應CH341的SLCTIN#/ADDRS#引腳
BOOL WINAPI CH341ReadI2C( // 從I2C接口讀取一個字節數據
ULONG iIndex, // 指定CH341設備序號
UCHAR iDevice, // 低7位指定I2C設備地址
UCHAR iAddr, // 指定數據單元的地址
PUCHAR oByte ); // 指向一個字節單元,用于保存讀取的字節數據
BOOL WINAPI CH341WriteI2C( // 向I2C接口寫入一個字節數據
ULONG iIndex, // 指定CH341設備序號
UCHAR iDevice, // 低7位指定I2C設備地址
UCHAR iAddr, // 指定數據單元的地址
UCHAR iByte ); // 待寫入的字節數據
BOOL WINAPI CH341EppReadData( // EPP方式讀數據: WR#=1, DS#=0, AS#=1, D0-D7=input
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存讀取的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341EppReadAddr( // EPP方式讀地址: WR#=1, DS#=1, AS#=0, D0-D7=input
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存讀取的地址數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341EppWriteData( // EPP方式寫數據: WR#=0, DS#=0, AS#=1, D0-D7=output
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備寫出的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH341EppWriteAddr( // EPP方式寫地址: WR#=0, DS#=1, AS#=0, D0-D7=output
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備寫出的地址數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH341EppSetAddr( // EPP方式設置地址: WR#=0, DS#=1, AS#=0, D0-D7=output
ULONG iIndex, // 指定CH341設備序號
UCHAR iAddr ); // 指定EPP地址
BOOL WINAPI CH341MemReadAddr0( // MEM方式讀地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存從地址0讀取的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341MemReadAddr1( // MEM方式讀地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存從地址1讀取的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341MemWriteAddr0( // MEM方式寫地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備向地址0寫出的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH341MemWriteAddr1( // MEM方式寫地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備向地址1寫出的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH341SetExclusive( // 設置獨占使用當前CH341設備
ULONG iIndex, // 指定CH341設備序號
ULONG iExclusive ); // 為0則設備可以共享使用,非0則獨占使用
BOOL WINAPI CH341SetTimeout( // 設置USB數據讀寫的超時
ULONG iIndex, // 指定CH341設備序號
ULONG iWriteTimeout, // 指定USB寫出數據塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認值)
ULONG iReadTimeout ); // 指定USB讀取數據塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認值)
BOOL WINAPI CH341ReadData( // 讀取數據塊
ULONG iIndex, // 指定CH341設備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區,用于保存讀取的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH341WriteData( // 寫出數據塊
ULONG iIndex, // 指定CH341設備序號
PVOID iBuffer, // 指向一個緩沖區,放置準備寫出的數據
PULONG ioLength ); // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
PVOID WINAPI CH341GetDeviceName( // 返回指向CH341設備名稱的緩沖區,出錯則返回NULL
ULONG iIndex ); // 指定CH341設備序號,0對應第一個設備
ULONG WINAPI CH341GetVerIC( // 獲取CH341芯片的版本,返回:0=設備無效,0x10=CH341,0x20=CH341A
ULONG iIndex ); // 指定CH341設備序號
BOOL WINAPI CH341FlushBuffer( // 清空CH341的緩沖區
ULONG iIndex ); // 指定CH341設備序號
BOOL WINAPI CH341WriteRead( // 執行數據流命令,先輸出再輸入
ULONG iIndex, // 指定CH341設備序號
ULONG iWriteLength, // 寫長度,準備寫出的長度
PVOID iWriteBuffer, // 指向一個緩沖區,放置準備寫出的數據
ULONG iReadStep, // 準備讀取的單個塊的長度, 準備讀取的總長度為(iReadStep*iReadTimes)
ULONG iReadTimes, // 準備讀取的次數
PULONG oReadLength, // 指向長度單元,返回后為實際讀取的長度
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -