Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VB.net 2008读取串行端口时出现问题_Vb.net_Serial Port - Fatal编程技术网

使用VB.net 2008读取串行端口时出现问题

使用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

让我先告诉你我一直面临的问题。我有微控制器和我的计算机的串行端口接口。在我的微控制器中,我有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。