我使用CH372芯片与PC通信,上位机使用伪中断方式读取数据,用VB6.0做的界面,为什么有时会造成上位机内存错误?不使用伪中断的话程序没有问题。请问是什么原因?
你的中断服务回调程序有没有存在内存出错的可能性?我们的DLL库是测试过没有问题的,而且我们不建议使用中断服务回调函数。
谢谢您的回答,我的上位机是这样的, 如果下位机中断上传的是5,则调用接收函数接收数据,如果下位机中断上传的是1,则让继续发送标志置1,从而上位机可以继续发送其它数据。 Public Sub mInterruptEvent(ByRef mBuffer As INT_PARA) '中断服务程序 Dim strErrMsg As String Dim bool As Boolean If mBuffer.buf(0) = 5 Then'如果中断端点值为5,就在回调函数中调用接收数据函数通知上位机接收数据 bool = PostMessage(FormMain.hwnd, WM_KEYDOWN, 1, 0) ' 中断特征数据1则键被按下 ElseIf mBuffer.buf(0) = 1 Then’如果值为1,则置继续发送标志为1,从而上位机可以继续传其它数据 GO_ON_SEND = True End If End Sub
'模拟调用窗体的按键按下事件,由模块中的中断程序调用 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '调用接收数据函数 Call receivedata End Sub
请问这样做是不是很不稳定呀?