让我先告诉你我一直面临的问题。我的微控制器与我的电脑的串口连接。在我的微控制器中,我有2000个样本数据,我的主要目标是读取这些数据。现在我可以在超级终端中读取这些数据,但是当涉及到我的应用程序时,它不会显示任何内容。现在我对VB.net很新,所以必须要有一些东西缺失。
Private Sub sp1_DataReceived(ByVal sender As Object,ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)处理sp1.DataReceived
sp1.Open()
MsgBox(sp1.ReadExisting())
End Sub
这个简单的代码块应该向我显示数据。但它没有。
数据格式即将发布的微控制器在以下格式中:
nitialization成功!,1023
开始抽样过程... 1023,1023 1023,1023
0,2103,1023 1023,1023 1023,1023 212,686 1023,1023 1023,1023
1,5 1023,1023 1023,1023 1023,1023,659 213,689 1023,1023 1023,1023
现在,我不明白为什么它没有读任何东西:(请帮帮我。谢谢
注意:SP1的波特率为19200,Databits为8,没有奇偶校验,COM1端口。我不确定我是否需要缓冲区
答案 0 :(得分:1)
您需要检查是否需要打开流量控制。
通常,串口将使用RTS硬件流控制。设置RtsEnable = True将允许数据流向您的应用程序。
正如另一条评论中所提到的,您不应该尝试在数据接收事件处理程序中打开串行端口对象。触发数据接收事件时,串口对象应该已经打开。这可能是您在执行ReadExisting方法时没有获取数据的原因。