CH341DLL.BAS INT#(中斷)怎么調(diào)用

CH341DLL.BAS,為VB6.0開(kāi)發(fā)所使用的CH341基礎(chǔ)庫(kù),從DLL文件看,中斷入口函數(shù)為:CH341SetIntRoutine。
但整個(gè)函數(shù)的調(diào)用并沒(méi)有詳細(xì)說(shuō)明。
哪位大俠有用過(guò)此功能呢?
INT#是否得先初始化,然后怎么調(diào)用?
請(qǐng)指教,謝謝!


熱門(mén)產(chǎn)品 : USB3.0 HUB控制器:CH634

您好,使用此中斷功能時(shí),僅需要應(yīng)用程序注冊(cè)中斷服務(wù)函數(shù)即可。無(wú)需額外初始化動(dòng)作,注冊(cè)成功后,INT有低電平有效信號(hào)時(shí),會(huì)自動(dòng)觸發(fā)中斷服務(wù)函數(shù)。


我是用VB6.0進(jìn)行開(kāi)發(fā),根據(jù)DLL文件描述:

Declare Function CH341SetIntRoutine Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iIntRoutine As Long) As Boolean

'設(shè)定中斷服務(wù)程序

' 指定CH341設(shè)備序號(hào)

'指定中斷服務(wù)程序,為NULL則取消中斷服務(wù),否則在中斷時(shí)調(diào)用該程序

'? sub? mPCH341_INT_ROUTINE? (? ? ? ? ? ? ? 中斷服務(wù)程序

'? ? ? ? ? ? ?ULONG? ? ? ? ? ?iStatus )? ? ?中斷狀態(tài)數(shù)據(jù),見(jiàn)下行

' 位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引腳

我只知這是一個(gè)中斷路由函數(shù),但上述的中斷服務(wù)程序與這路由函數(shù)之前怎么調(diào)用,我想不出來(lái)。
可以舉例說(shuō)明嗎?謝謝!

另外,從規(guī)格書(shū)描述,INT#是上升沿有效,不是低電平有效,能否幫忙確認(rèn)下,謝謝!


我修改了程序,目前只要INT#引腳有電平變化,都會(huì)進(jìn)入中斷。
但這與規(guī)格書(shū)描述不符合,不知問(wèn)題在哪?
另外,進(jìn)入中斷后,怎么確認(rèn)是哪個(gè)信號(hào)引起的中斷呢?


您好,關(guān)于如上問(wèn)題,INT#腳使用不依賴(lài)于其他硬件信號(hào),中斷觸發(fā)僅需要給INT#腳有效的上升沿信號(hào)即可。

關(guān)于中斷狀態(tài)的說(shuō)明,是芯片額外支持中斷到來(lái)的時(shí)候主動(dòng)上報(bào)一次有關(guān)IO口的電平狀態(tài)。(該狀態(tài)可用可不用)?



CH341DLL.BAS看,中斷服務(wù)程序感覺(jué)不像VB6.0的語(yǔ)法,而規(guī)格書(shū)的的描述看,也不像VB6.0

image.png

我現(xiàn)在想不出用VB6.0怎么編寫(xiě)中斷服務(wù)函數(shù),能否給力點(diǎn),直接給個(gè)VB6.0的中斷服務(wù)程序案例,非常感謝!


您好,可聯(lián)系我司技術(shù)人員溝通下使用細(xì)節(jié),聯(lián)系方式已私信。


謝謝!

現(xiàn)描述下我的應(yīng)用及問(wèn)題(使用VB6.0開(kāi)發(fā)平臺(tái),DLL文件為:CH341DLL.BAS):

1) INT#作為外部觸發(fā)信號(hào),當(dāng)來(lái)一個(gè)上升沿時(shí)觸發(fā),進(jìn)入中斷服務(wù)程序。

? ? 這個(gè)中斷服務(wù)程序的入口從DLL文件看是CH341SetIntRoutine。

? ?目前我調(diào)用了這個(gè)函數(shù),可以進(jìn)入中斷,但不管是上升沿或下降沿,都可進(jìn)入中斷。

? ?但進(jìn)入中斷后,我無(wú)法判定是上升沿進(jìn)入或下降沿進(jìn)入,要怎么判斷呢?

2)在中斷服務(wù)程序中,我采用CH341GetStatus獲取狀態(tài),但這個(gè)狀態(tài)與規(guī)格書(shū)描述的好像不大一樣。

? ?在INT#接地時(shí),讀出來(lái)的數(shù)據(jù)為 8449023,而INT#懸空(有內(nèi)部上拉),讀出來(lái)的值為08450047。

? ?根據(jù)規(guī)格書(shū)描述,INT#對(duì)應(yīng)的是bit11,但上述兩個(gè)數(shù)據(jù)的bit11都為0,即一樣。

3)假設(shè)我不用CH341GetStatus獲取狀態(tài),改用CH341ReadInter獲取中斷狀態(tài),則讀出來(lái)的數(shù)據(jù)又不一樣。

? ?當(dāng)INT#接地時(shí),讀出來(lái)的數(shù)據(jù)為3071,當(dāng)INT#懸空(有內(nèi)部上拉),讀出來(lái)的值為4095,但這兩個(gè)數(shù)據(jù)的bit11也一樣,都??

? 為0.

4)CH341GetStatus與CH341ReadInter在使用上有什么差異呢

以上煩請(qǐng)幫忙解答,謝謝!



您好,

如溝通,關(guān)于如上問(wèn)題說(shuō)明如下:

1、芯片僅支持上升沿觸發(fā)中斷,當(dāng)注冊(cè)中斷服務(wù)函數(shù)后,中斷事件來(lái)臨會(huì)自動(dòng)調(diào)用中斷服務(wù)函數(shù),并且中斷觸發(fā)時(shí)會(huì)返回iStatus狀態(tài)。此變量中可以直接讀取芯片的IO口電平狀態(tài)(1為高電平,0為低電平);

2、使用CH341GetStatus、CH341ReadInter、CH341GetInput等主動(dòng)獲取的GPIO狀態(tài)和中斷服務(wù)函數(shù)返回的iStatus均可用于指示IO口輸入電平狀態(tài),其區(qū)別是:CH341GetStatus和CH341GetInput獲取GPIO狀態(tài)支持的IO更多,其余2種僅低12位可用(BIT0-BIT11);

3、已提供完整VB測(cè)試?yán)探o您,可同比測(cè)試驗(yàn)證;


謝謝支持!
非常給力,已經(jīng)大概怎么中斷怎么進(jìn)入,狀態(tài)怎么獲取了。
非常感謝1


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频