投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/7/6 10:52:48
> (受信データを表示するTextBox)に0.5秒おきに「FF」が表示されます。
念のために確認。受信時にメッセージボックスを使ったりはしていないでしょうか。

メッセージボックスは、ボタンを押すまで応答が止まる「同期処理」のため、
その間に通信が行われると、データを取りこぼす可能性が出てきます。
(Debug クラスによる確認に切り替えたのもそのためです)


> Dim args(0) As Object
> args(0) = data
この 2 行は使われていないので、削除したほうが良いかと思います。


> 0.5秒おきに「FF」が表示されてしまっています。
> これは、2Byteしか受信できていないということなのでしょうか。
2 桁の FF は 1 バイト(8 ビット)ですよね。&HFF = &B1111_1111 = 255
1 桁の F  なら 0.5 バイト(4 ビット)です。&HF  = &B0000_1111 =  15


データが 2 バイトの固定長なのであれば、
ReceivedBytesThreshold は 1 のままにしておき、
DataReceived イベント内にて、
「2 バイト溜まるまでは読み取らない」とか。

If SerialPort1.BytesToRead < 2 Then
    '受信データが溜まってない場合は、Read せずにスルー 
    Return
End If