【问题标题】:How to send Text and hex codes to serial VFD display [VB.NET]如何将文本和十六进制代码发送到串行 VFD 显示器 [VB.NET]
【发布时间】:2012-09-11 19:07:51
【问题描述】:

我想编写一个 vfd 显示器以与 vb.net 一起使用 目前,我只能将文本发送到 vfd 显示器,但它的格式仍然不正确。我想不通,所以我会附上编程手册。

我想做的事情:

  • 由于有 2 行,我想在这 2 行中显示不同的数据。
  • 我应该能够清除显示。
  • 如果文本长于显示(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

【问题讨论】:

  • 如何将十六进制代码发送到串口?
  • 您的代码对我很有帮助..但是您是如何设法清除显示的? ..+1 谢谢

标签: vb.net serial-port vfd


【解决方案1】:

要发送二进制数据,最好使用采用字节数组的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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-12
    • 2011-05-17
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多