在VB中應(yīng)該怎樣調(diào)用CH341DLL.DLL,才能控制發(fā)光二極管亮暗?
這樣做是能行的,只是怎么用官方API才能實(shí)現(xiàn)???
你可以通過下面兩個(gè)函數(shù)實(shí)現(xiàn) BOOL WINAPI CH341SetOutput( // 設(shè)置CH341的I/O方向,并通過CH341直接輸出數(shù)據(jù) /* ***** 謹(jǐn)慎使用該API, 防止修改I/O方向使輸入引腳變?yōu)檩敵鲆_導(dǎo)致與其它輸出引腳之間短路而損壞芯片 ***** */ ULONG iIndex, // 指定CH341設(shè)備序號(hào) ULONG iEnable, // 數(shù)據(jù)有效標(biāo)志,參考下面的位說明 // 位0為1說明iSetDataOut的位15-位8有效,否則忽略 // 位1為1說明iSetDirOut的位15-位8有效,否則忽略 // 位2為1說明iSetDataOut的7-位0有效,否則忽略 // 位3為1說明iSetDirOut的位7-位0有效,否則忽略 // 位4為1說明iSetDataOut的位23-位16有效,否則忽略 ULONG iSetDirOut, // 設(shè)置I/O方向,某位清0則對(duì)應(yīng)引腳為輸入,某位置1則對(duì)應(yīng)引腳為輸出,并口方式下默認(rèn)值為0x000FC000,參考下面的位說明 ULONG iSetDataOut ); // 輸出數(shù)據(jù),如果I/O方向?yàn)檩敵?那么某位清0時(shí)對(duì)應(yīng)引腳輸出低電平,某位置1時(shí)對(duì)應(yīng)引腳輸出高電平,參考下面的位說明 // 位7-位0對(duì)應(yīng)CH341的D7-D0引腳 // 位8對(duì)應(yīng)CH341的ERR#引腳, 位9對(duì)應(yīng)CH341的PEMP引腳, 位10對(duì)應(yīng)CH341的INT#引腳, 位11對(duì)應(yīng)CH341的SLCT引腳 // 位13對(duì)應(yīng)CH341的WAIT#引腳, 位14對(duì)應(yīng)CH341的DATAS#/READ#引腳,位15對(duì)應(yīng)CH341的ADDRS#/ADDR/ALE引腳 // 以下引腳只能輸出,不考慮I/O方向: 位16對(duì)應(yīng)CH341的RESET#引腳, 位17對(duì)應(yīng)CH341的WRITE#引腳, 位18對(duì)應(yīng)CH341的SCL引腳, 位29對(duì)應(yīng)CH341的SDA引腳
BOOL WINAPI CH341Set_D5_D0( // 設(shè)置CH341的D5-D0引腳的I/O方向,并通過CH341的D5-D0引腳直接輸出數(shù)據(jù),效率比CH341SetOutput更高 /* ***** 謹(jǐn)慎使用該API, 防止修改I/O方向使輸入引腳變?yōu)檩敵鲆_導(dǎo)致與其它輸出引腳之間短路而損壞芯片 ***** */ ULONG iIndex, // 指定CH341設(shè)備序號(hào) ULONG iSetDirOut, // 設(shè)置D5-D0各引腳的I/O方向,某位清0則對(duì)應(yīng)引腳為輸入,某位置1則對(duì)應(yīng)引腳為輸出,并口方式下默認(rèn)值為0x00全部輸入 ULONG iSetDataOut ); // 設(shè)置D5-D0各引腳的輸出數(shù)據(jù),如果I/O方向?yàn)檩敵?那么某位清0時(shí)對(duì)應(yīng)引腳輸出低電平,某位置1時(shí)對(duì)應(yīng)引腳輸出高電平 // 以上數(shù)據(jù)的位5-位0分別對(duì)應(yīng)CH341的D5-D0引腳
b = CH341SetOutput(0, 12, 15, 15) 我在VB中這樣調(diào)用沒成功。
編譯通過了嗎?還有這個(gè)函數(shù)調(diào)用之前要調(diào)用打開設(shè)備的,如果是運(yùn)行時(shí)沒反應(yīng)的話,要確定是不是硬件這邊有問題?
程序能運(yùn)行,實(shí)驗(yàn)板沒反應(yīng)。
CH341Set_D5_D0 CH341SetOutput 不知怎么用
VB少人用。。。。不知怎么用。。。。給行VB 代碼