如何将文本和十六进制代码发送到串行VFD显示[VB.NET]

时间:2012-09-11 19:07:52

标签: vb.net serial-port vfd

我想编写一个用于vb.net的vfd显示器 目前,我只能将文本发送到vfd显示器,但它仍然没有正确的格式。我无法理解,所以我将包括编程手册。

我想做的事情:

  • 由于有两行,我想在这两行中显示不同的数据。
  • 我应该能够清除显示屏。
  • 如果文字长于显示屏(20行),则应开始滚动。 这就是现在,我希望有人可以帮助我。

以下是我使用的代码:

 Dim sp As New SerialPort()

    sp.PortName = "COM1"
    sp.BaudRate = 9600
    sp.Parity = Parity.None
    sp.DataBits = 8
    sp.StopBits = StopBits.One
    sp.Open()
    sp.WriteLine(TextBox1.Text)
    sp.WriteLine(TextBox2.Text)
    sp.Close()
    sp.Dispose()
    sp = Nothing

enter image description here

1 个答案:

答案 0 :(得分:4)

要发送二进制数据,最好使用采用字节数组的SerialPort.Write方法的重载。如果你发送字符或字符串,你将不得不处理最烦人的字符编码,最坏的情况下会失败。有时,当您将数字值编码为字符然后将其解码回数值时,解码后的值将与原始值不匹配。因此,最安全和最简单的方法是将字节值作为字节数组发送。例如:

Dim bytes() As Byte = { &H00, &H20, &HFF }
sp.Write(bytes, 0, bytes.Length)

或者,如果要分别按十六进制值加载每个字节:

Dim bytes(3) As Byte 
byte(0) = &H00
byte(1) = &H20
byte(2) = &HFF
sp.Write(bytes, 0, bytes.Length)

或者,如果您只想通过其十六进制值发送单个字节:

sp.Write(New Byte() { &H20 }, 0, 1)