投稿者 vb素人  (社会人) 投稿日時 2017/7/8 15:18:22
魔界の仮面弁士さま

毎回ありがとうございます。

①送信側は、WriteUSART(0xFF); に念の為、修正させていただきました。
動作に変わりはありませんでした。


②続いて、受信データの確認を行いました。
>確認のため、SerialPort1.Read(rdat1, 0, 4) の直後に
>Debug.WriteLine(BitConverter.ToString(rdat1))
>を実行してみてください。

実行結果は、次の通りとなりました。
これは、配列の先頭にデータが毎回入るだけで、配列の要素数(5)に問題はありますが、
配列の要素1~4にデータが入らないのがなぜかわかりません。
FF-00-00-00-00
FF-00-00-00-00
FF-00-00-00-00
03-00-00-00-00

③受信データ確認

教えていただいた所を修正して、次のコードで再び受信データの確認を行いましたが、
やはり昨日と同じ結果です。

255
0
255
0
255
0
3
0


確認したコード

            If SerialPort1.ReadBufferSize >= 4 Then

                Dim rdat1(4) As Byte
                SerialPort1.Read(rdat1, 0, 4)

                'Debug.WriteLine(BitConverter.ToString(rdat1))

                Dim rdat1bin As Byte() = {rdat1(0), rdat1(1)}
                Dim rdat2bin As Byte() = {rdat1(2), rdat1(3)}

                Dim rdat1a As UShort = BitConverter.ToUInt16(rdat1, 0)               '符号付き 2 バイト整数に変換 
                Dim rdat2a As UShort = BitConverter.ToUInt16(rdat1, 2)               '符号付き 2 バイト整数に変換 

                Dim rdat1b As String = Convert.ToString(rdat1a, 10)  '10進数表記の "1023" に変換 
                Dim rdat2b As String = Convert.ToString(rdat1a, 10)  '10進数表記の "1023" に変換 


                Debug.WriteLine(rdat1a)
                Debug.WriteLine(rdat2a)


            End If