【解決方法】VB のシリアル COM (ビジュアル スタジオ 2022)

プログラミングQA

[ad_1]

COM ポートを選択して使用し、オンラインで見つけた例を使用して、ドロップダウン リストから Hello World を書き込もうとしています。 リストをドロップダウンすると、すべてが正常に見えますが、USB シリアル アダプターが接続されている Com ポートに書き込もうとすると、ポート名が認識されないというエラーが表示されます (たとえ認識できたとしても)。ドロップダウンリスト)。 コードのコピーをここに示します。何か提案はありますか?? ありがとう!

私が試したこと:

私のコード:

VB.NET
Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel

Public Class Form1

    Dim myport As Array
    Delegate Sub settextcallback(ByVal [text] As String)

    Private Sub Form1_Load(sender As Object, e As EventArgs)
        Handles MyBase.Load

        myport = IO.Ports.SerialPort.GetPortNames()
        Printer_Comport.Items.AddRange(myport)

    End Sub

    Private Sub Printer_Comport_MouseClick(sender As Object, e As MouseEventArgs)
        Handles Printer_Comport.MouseClick

        Printer_Comport.Items.Clear()
        myport = IO.Ports.SerialPort.GetPortNames
        Printer_Comport.Items.AddRange(myport)

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs)
        Handles Button1.Click

        SerialPort1.PortName = Printer_Comport.Text 'Heres where I get error
        SerialPort1.BaudRate = 9600
        SerialPort1.Open()
        SerialPort1.Write("Hello World")
        SerialPort1.Close()
    End Sub
End Class

解決策 1

コードをアプリに貼り付けると、表示されたエラーは表示されません。呼び出しに到達すると、「ポート ‘COM1:’ が存在しません」というエラーが表示されます。 Open この PC には COM ポートが接続されていないためですが、それは想定内です。

したがって…何が起こっているのかを正確に調べるにはデバッガーを使用する必要があります。
まず、ハイパーターミナルなどを使用して通信が確立できるかどうかを確認し、それが機能したら、メソッドの先頭にブレークポイントを置き、変数を調べてポート名のリストに何が含まれているか、ポート名のリストに何が含まれているかを確認します。コンボボックス テキストなど。 一度それを知れば、それはかなり明白なはずですが、私たちはあなたの代わりにそれを行うことはできません。

解決策 2

その行で何らかのエラーがスローされる可能性があるのは、Printer_Comport.Text が空の文字列を返した場合だけです。 これは、コントロール内で何も選択されていないことを意味します。

[ad_2]

コメント

タイトルとURLをコピーしました