VB.NETによるCOMポートの操作例(任意ボーレート・カスタムボーレート)

 ヒューマンデータのUSB変換器に任意ボーレート(カスタムボーレート)を設定するにはどうすればいいですか。

 当社のUSB変換器の多くで任意ボーレートが可能ですが、デバイスドライバの設定や、機器の設定は必要ありません。
COMポート(SerialPort)をオープンする際にボーレートとして希望の値を設定してください。
設定できる値の範囲は機種毎に異なります。
 下記は、VB.NETやC#で用意されているserialportクラスのプロパティです。

下記に、VB.NETによる簡単な送信テストのソースをお示しします。

 Public Class Form1
    Dim message As String

 

    Private Sub Button_open_Click(sender As Object, e As EventArgs) Handles Button_open.Click
        SerialPort1.BaudRate = TextBox_rate.Text
        SerialPort1.PortName = TextBox_portno.Text
        SerialPort1.ReadTimeout = 500
        SerialPort1.WriteTimeout = 500
        SerialPort1.Open()
        CheckBox_isopen.Checked = SerialPort1.IsOpen
        Button_open.Enabled = Not SerialPort1.IsOpen
        Button_close.Enabled = SerialPort1.IsOpen
        Button_sendU.Enabled = SerialPort1.IsOpen

    End Sub

    Private Sub Button_close_Click(sender As Object, e As EventArgs) Handles Button_close.Click
        SerialPort1.Close()
        CheckBox_isopen.Checked = SerialPort1.IsOpen
        Button_open.Enabled = Not SerialPort1.IsOpen
        Button_close.Enabled = SerialPort1.IsOpen
        Button_sendU.Enabled = SerialPort1.IsOpen

    End Sub

    Private Sub Button_sendU_Click(sender As Object, e As EventArgs) Handles Button_sendU.Click
        Dim sbuf As String
        sbuf = TextBox_STEXT.Text
        SerialPort1.Write(sbuf)
        RichTextBox1.Text += sbuf

    End Sub
End Class

例題のアプリケーション画面:

 "UUUUUUUUUU"と送信することで、ほぼ方形波が出力されますので、ボーレートの確認がやりやすくなります。Uの代わりに0xAAでも同様です。
下記は、USB-010にて1.2Mbpsに設定したときの出力波形です。

 (クリックして拡大
周波数600kHz=1.2Mbps

 この記事が皆様の参考になれば幸いです。
 C#についての参考ページはこちらをごらんください


[kw] 2016-03-17 任意ボーレート カスタムボーレート サンプルプログラム

[]