我正在尝试使用VB.NET与微控制器(Arduino)进行通信 . 我莫名其妙地能够在两者之间 Build 联系 . 然而,当我测试从微控制器接收和打印数据时,它有时会切断字符串 . 有时它显示一个(?)符号,由于未知的字符我理解 . 但是我设法将字符编码与串行端口对象一起设置 . 这是我的代码片段(我 class 的串口对象声明)
Public Function setSerialPortObjectParams(ByVal params As Collection)
With Me.sp
.Close()
.PortName = params("port")
.BaudRate = params("baud")
.ReadTimeout = If(params.Contains("readTimeout"), params("readTimeout"), 500)
.WriteTimeout = If(params.Contains("writeTimeout"), params("writeTimeout"), 500)
.ReadTimeout = If(params.Contains("readTimeout"), params("readTimeout"), 500)
.DataBits = If(params.Contains("bits"), params("bits"), 8)
.Parity = If(params.Contains("parity"), params("parity"), Parity.None)
.StopBits = If(params.Contains("stopBits"), params("stopBits"), StopBits.One)
.Handshake = If(params.Contains("handShake"), params("handShake"), Handshake.None)
.Encoding = If(params.Contains("encoding"), params("encoding"), System.Text.Encoding.UTF8)
End With
Return Me
End Function
这是截图 .
从图像中可以看出,当我点击“LED ON”按钮时,它会假设向微控制器发送“on”命令,然后从那里将串行打印收到的字符串“on”返回到应用 . 然而,在某处发生了一个字符串的修剪,我不知道是什么原因造成的?
先谢谢你们 .
2 回答
我会认真考虑使用firmata来简化与vb.net的arduino的通信 . 去here获取一个.net兼容的包装器 . 该站点的下载部分也有示例代码,因此您无需从头开始 .
我写的这段代码可能会有所帮助,我知道是2或3年后,但对于新人可以有帮助.....
检查端口是否可用 . 请确保arduino连接到该端口....
形式......