Vb.net visualbasic中的串口问题
我有个问题。每当我使用命令打开串行端口时,如果我使用19200及以上的波特率,VB将通过串行端口自动向控制器发送一些数据(我不知道这些数据是什么以及来自何处)。但当我使用波特率9600时,这个问题不会发生Vb.net visualbasic中的串口问题,vb.net,Vb.net,我有个问题。每当我使用命令打开串行端口时,如果我使用19200及以上的波特率,VB将通过串行端口自动向控制器发送一些数据(我不知道这些数据是什么以及来自何处)。但当我使用波特率9600时,这个问题不会发生 '-----------------------------vb code---------------------------------- Imports System Imports System.Threading Imports System.IO.
'-----------------------------vb code----------------------------------
Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
With SerialPort1
.PortName = "Com6"
.RtsEnable = True
.DataBits = 8
.BaudRate = 19200
.Parity = IO.Ports.Parity.None
.StopBits = StopBits.One
.Open()
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim int As Integer = 7
SerialPort1.Write(BitConverter.GetBytes(int), 0, 1)
End Sub
End Class
'------------------------end of vb code---------------------------
//------------------- START OF ARDUINO SKETCH -------------------
void setup(){
Serial.begin(19200);
Serial1.begin(19200 );
}
void loop(){
if (Serial.available()) {
int val = Serial.read();
Serial1.print(val);
}
}
//------------- END OF ARDUINO SKETCH ----------------
结果
2552552552557
我不知道我要发送的值中填充的数据是什么,它来自哪里:255255
而
7
是我要发送的数据。是否可能有一点尾端/大端不匹配?vbforums中的这篇文章可能会对您有所帮助:您只是想找出数据的来源,还是想知道如何更改发送的数据?听起来这些数据可能是十六进制或ASCII格式。在Arduino中获得255并不是一个完全的谜,当您将值-1解释为字节时,您就会得到它。在没有可用字节时调用Serial.read()时返回。否则,该解释与您的代码片段不一致。波特率越高,电噪声问题越严重,这总是一个随机数发生器。