【发布时间】:2011-10-02 21:27:23
【问题描述】:
让我先告诉你我一直面临的问题。我的微控制器与我的计算机的串行端口连接。在我的微控制器中,我有 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())
结束子
这个简单的代码块应该显示数据。但它没有。
来自微控制器的数据格式如下:
初始化成功!,1023
开始采样过程... 1023,1023 1023,1023
0,2 1023,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,数据位 8,无奇偶校验,COM1 端口。我不确定是否需要缓冲区
【问题讨论】:
-
SP1 的数据类型是什么?您需要在某处设置串行端口设置,例如波特率、数据位、停止位、com 端口。是否缺少代码片段?
-
SP1 的波特率为 19200,数据位 8 且无奇偶校验,COM1 端口。我不确定是否需要缓冲区
-
端口是否在其他地方打开?我认为在打开端口之前不会触发任何事件,因此在事件处理程序中打开端口可能无法正常工作。
-
好吧,我把打开命令放在表单加载事件中,但还是一样,没有响应
-
在 DataReceived 事件中打开串口时杀死了一只小猫。如果不先打开端口,您将无法获取事件。当您使用 MessageBox 而不是调试器时,另一只小猫会咬灰尘。它不起作用,因为您没有设置 Handshake 属性。如果不这样做,则必须将端口的 DtrEnable 和 RtsEnable 属性设置为 true。
标签: vb.net serial-port