掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSComm通信中のフリーズ対策 (ID:102347)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になってます。 下記のようなPCのUSB(仮想COM)ポートにつないだUSBマイコンと通信 するプログラムを作りました。 ボタンを押すと通信を開始するのですが、通信完了まではおよそ3秒程度かかります。 その通信中(送信中)に万が一接続が外れたと仮定して通信中にポート からUSBコネクタを引き抜くとVBがフリーズします。 ステップイン実行で行い、cmdw_Click()内のFor文内をステップイン動作中に USBを引き抜くとOnComm()イベントに飛び(引き抜かなければForループが終 わるまでOnCommイベントには飛ばない)comEventTxFullに引っかかり、 End Selectの後MSComm1.Outputの部分で8021:アプリケーション定義またはオブジェクト定義のエラーと表示されれます。 そのエラーを無視してステップイン実行を続けると、For文内のMSComm1.Outputの 部分に再度差し掛かった時点でフリーズします。 このフリーズの原因は何か また、フリーズをうまく回避して送信を中断する方法はないのかをお聞きしたいです よろしくおねがいします。 '受信イベント発生(受信バッファ1バイト以上) Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comEvReceive data = data + MSComm1.InBufferCount Buffer = MSComm1.Input txBuffer = txBuffer & Buffer Text2.Text = txBuffer Case・・・ ・ ・ Case comEventTxFull MsgBox "送信バッファがいっぱい", vbCritical ・ ・ End Select End Sub 'テキストデーターeeprom書き込みコマンド Private Sub cmdw_Click() dim x as integer x=0 For c = 1 To 32 MSComm1.Output = x & Chr(13) 'データを書き込むコマンド x=x+10 Next c end sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.