我正在了解ch372上位機(jī)的中斷處理,貴公司372evt/pub/demo下的中斷服務(wù)程序讓我迷惑, 為何在中斷服務(wù)中沒(méi)有見(jiàn)使用ch375readinter,iBuffer中的的數(shù)據(jù)是從哪讀來(lái)的?另外PUCHAR是默認(rèn)的指針類型嗎?下面是該中斷程序——
// 中斷服務(wù)程序是由CH375驅(qū)動(dòng)程序中斷后通過(guò)DLL在應(yīng)用層模擬調(diào)用的 VOID CALLBACK mInterruptEvent( // 中斷服務(wù)程序 PUCHAR iBuffer ) // 指向一個(gè)緩沖區(qū),提供當(dāng)前的中斷特征數(shù)據(jù) { // iBuffer指向一個(gè)8個(gè)字節(jié)的緩沖區(qū),該緩沖區(qū)中的內(nèi)容是由單片機(jī)用CMD_WR_USB_DATA5命令寫(xiě)入CH375的數(shù)據(jù) // CH375產(chǎn)生中斷后,產(chǎn)生一個(gè)消息通知主程序 if ( iBuffer[0] == 1 ) // 檢查中斷特征數(shù)據(jù) { mKeyCode = iBuffer[1] & 0x3f; // 返回的鍵值,則單片機(jī)存放在中斷特征數(shù)據(jù)緩沖區(qū)的第2字節(jié) PostMessage( mSaveDialogMain, WM_COMMAND, IDC_INT_PRESS, 0 ); // 中斷特征數(shù)據(jù)1則鍵被按下 } else if ( iBuffer[0] == 2 ) PostMessage( mSaveDialogMain, WM_COMMAND, IDC_INT_RELEASE, 0 ); // 中斷特征數(shù)據(jù)2則鍵被釋放
// 如果使用中斷特征數(shù)據(jù),則根據(jù)該數(shù)據(jù)作相應(yīng)的處理 /* switch( iBuffer[0] ) { case 1: 中斷特征數(shù)據(jù)為1 case 2: 中斷特征數(shù)據(jù)為2 ..... case 6: 中斷特征數(shù)據(jù)為6 } */ }