使用VB.net 2008读取串行端口时出现问题
让我先告诉你我一直面临的问题。我有微控制器和我的计算机的串行端口接口。在我的微控制器中,我有2000个样本数据,我的主要目标是读取这些数据。现在,我可以在超级终端中读取这些数据,但当涉及到我的应用程序时,它不会显示任何内容。现在我对VB.net还很陌生,所以肯定少了一些东西 私有子sp1_DataReceived(ByVal sender作为对象,ByVal e作为System.IO.Ports.SerialDataReceivedEventArgs)处理sp1.DataReceived使用VB.net 2008读取串行端口时出现问题,vb.net,serial-port,Vb.net,Serial Port,让我先告诉你我一直面临的问题。我有微控制器和我的计算机的串行端口接口。在我的微控制器中,我有2000个样本数据,我的主要目标是读取这些数据。现在,我可以在超级终端中读取这些数据,但当涉及到我的应用程序时,它不会显示任何内容。现在我对VB.net还很陌生,所以肯定少了一些东西 私有子sp1_DataReceived(ByVal sender作为对象,ByVal e作为System.IO.Ports.SerialDataReceivedEventArgs)处理sp1.DataReceived
sp1.Open()
MsgBox(sp1.ReadExisting())
端接头
这个简单的代码块应该会向我显示数据,但事实并非如此
微控制器的数据格式如下:
初始化成功!,1023正在启动采样过程。。。10231023 10231023 0,2 10231023 10231023 10231023 212686 10231023 10231023
1,5 10231023 10231023 10231023659 213689 10231023 10231023 现在,我不明白为什么它没有读到任何东西:(请帮助我,谢谢
注意:SP1的波特率为19200,数据位为8,无奇偶校验,COM1端口。我不确定是否需要缓冲区。您需要检查是否需要打开流量控制 通常,串行端口将使用RTS硬件流量控制。设置RtsEnable=True将允许数据流向应用程序
正如在另一条评论中提到的,您不应该尝试打开data received事件处理程序中的串行端口对象。在触发data received事件时,串行端口对象应该已经打开。这可能是您在执行ReadExisting方法时无法获取数据的原因。SP1的数据类型是什么?您可以需要在某些地方设置串行端口设置,如波特率、数据位、停止位、com端口。是否缺少代码段?SP1的波特率为19200,数据位为8,没有奇偶校验,com端口。我不确定是否需要缓冲区。是否在其他地方打开了端口?我认为在打开之前不会触发任何事件端口,因此在事件处理程序中打开端口可能不起作用。好吧,我将open命令放在form load event中,但它仍然是一样的,当你在DataReceived事件中打开串行端口时,你杀死了一只小猫。如果不先打开端口,你就无法获得该事件。当你使用Mes时,另一只小猫咬了灰尘sageBox而不是调试器。它不起作用,因为您没有设置握手属性。如果不设置,则必须将端口的DtrEnable和RtsEnable属性设置为true。