我正在创建一个windows窗体,用于向串行端口发送数据或从串行端口接收数据。
首先:我将数据以字符串的形式发送到串口。
第二:我再次尝试读取字符串以测试传输是否成功,但收到空字符串
这是我的代码:
Try
Dim SerialPort1
As New SerialPort("Com1",9600, Parity.None, 8, StopBits.One)
SerialPort1.Open()
SerialPort1.DtrEnabled=True
SerialPort1.WriteLine("This is my test message ." )
' ================= Read from serial port
Label1.Text=SerialPort1.ReadExisting() ' this returns empty string
Catch ex As Exception
MessageBox.Show(
"Error writing to serial port:" & ex.Message)
Finally
SerialPort1.Close()
End Try我需要问另一个问题:
是否需要将设备连接到串行端口才能成功发送/接收数据?
求求你,我需要紧急帮助
谢谢
发布于 2009-12-30 19:27:01
正如Heinzi已经提到的,如果你想查看数据,你需要一些数据。您发送的数据不会自动回显。
回答您的另一个问题:是的,您需要将另一个设备连接到您的串行端口,才能成功发送/接收数据。如果没有其他设备,还有什么意义呢?
对你来说幸运的是,你连接的“设备”可以像插头和一些电线一样简单。下面是一组用于构建所谓的环回插件的说明和图表:http://www.airborn.com.au/serial/rs232.html
这将允许您使用非常简单的硬件将您的输出回显到您的输入。如果你不喜欢焊接自己的插头,你可以使用所谓的接线盒或接线板。这里有一个例子:http://www.breakoutboxes.com/D-Series-9-Position-Breakout-Board_p_31.html。
发布于 2009-12-30 18:55:55
ReadExisting返回您与之通信的设备发送的数据,而不是您发送的数据。
发布于 2009-12-31 00:33:11
您可以尝试使用com0com生成虚拟串行端口对,然后可以将其中一个虚拟端口重命名为通用名称,如"COM4“。您应该打开用于串行通信的其他软件,如超级终端,然后设置为打开该端口对中的剩余端口。
您可以尝试将com0com fist与两个超级终端一起使用。
https://stackoverflow.com/questions/1979572
复制相似问题