Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
シリアル通信の受信データを表示
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30252#CommentId82876
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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