掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB5でバイナリのシリアル通信を行うには? (ID:139373)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
RS-232Cを介して外部機器を制御したいのですが どうしても受信がうまくいかないので教えてください。 外部機器の動作は 送信データ00 00 00 00(16進)と送ると 受信データ10 22 22 10(16進)と返してくる簡単なものです ソース ' MSCommコントロールの初期設定 msSerial.CommPort = 3 '通信ポートNo3指定 msSerial.Settings = "19200,n,8,1" '通信条件設定 msSerial.Handshaking = comNone 'フロー制御無し msSerial.RTSEnable = False 'RTS制御無し msSerial.RThreshold = 1 '1バイト受信毎にOnCommイベント発生 msSerial.SThreshold = 1 '送信バッファ空でOnCommイベント発生 bufLen = 1 msSerial.InputLen = bufLen '一度に受信するバイト数 Private Sub msSerial_OnComm() '変数宣言 Dim i As Integer Dim buffer() As Byte '受信バッファの宣言 Dim buffer_STR As String 'CommEventプロパティに対する処理 Select Case msSerial.CommEvent 'イベントの区分 Case comEvCD '何もしない Case comEvCTS Case comEvDSR Case comEvRing Case comEvReceive '受信データを表示 buffer_STR = msSerial.Input buffer() = buffer_STR txtInputData.Text = txtInputData.Text & " " & buffer(0) '取得したデータをつなげて表示 受信データを1バイトずつ表示しているのですが 受信データの10 22 しか表示することが出来ません。 また msSerial.RThreshold = 1 bufLen = 0 msSerial.InputLen = bufLen として受信データを一度に取ろうとしても Case comEvReceive '受信データを表示 buffer_STR = msSerial.Input buffer() = buffer_STR For i = 0 To bufLen - 1 Step 1 txtInputData.Text = txtInputData.Text & " " & buffer(i) '取得したデータをつなげて表示 Next i としても全ての受信データを取ることが出来ませんでした。 送信は出来ているのでポートの問題ではありませんでした。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.