投稿者 vb素人  (社会人) 投稿日時 2017/7/5 12:14:14
理解が悪くて本当にすみません。

試してみたことを整理します。
①SerialPort1.ReadByte()で読み取ると、"255"が表示される
②SerialPort1.ReadExisting()で読み取ると、"?"が表示される(ASCIIコード表で0x3FFに該当する文字)

③続いて、複数バイト読み取るため、受信データをbyte配列で宣言して試しました。
            'Dim data As Byte() = New Byte(SerialPort1.BytesToRead - 1) {}
            'SerialPort1.Read(data, 0, data.GetLength(0))

            'System.Text.Encoding.GetEncoding("SHIFT-JIS").GetString(data)

これで試した所、次のメッセージが出てきてしまいます。

型'System.Byte[]'のオブジェクトを型'System.String'に変換できません


試しているコードは次の通りです。(①を試したときのコード)


    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

        If SerialPort1.IsOpen = False Then
            Return
        End If

        Try
            Dim data As String
            data = SerialPort1.ReadByte()

            Dim args(0) As Object
            args(0) = data
            Invoke(New Delegate_RcvDataToTextBox(AddressOf Me.RcvDataToTextBox), args)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub


    Private Sub RcvDataToTextBox(data As String)

        '受信データをテキストボックスの最後に追記する.
        If IsNothing(data) = False Then
            RcvTextBox.AppendText(data)
        End If

    End Sub