我从头开始尝试编写一个简单的控制台来与Windows 7计算机上的串行端口进行接口。C#Visual Studio控制台串行接口
我使用:
- 的Visual Studio 2010旗舰版
- C#控制台项目
- 代码:http://pastebin.com/0ADaEiSY
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace ConsoleApplication1
{
class Program
{
public static void Main()
{
SerialPort mySerialPort = new SerialPort("COM5");
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
mySerialPort.Open();
mySerialPort.Write("This is a test");
Console.WriteLine("Press any key to continue...");
Console.WriteLine();
Console.ReadKey();
mySerialPort.Close();
}
private static void DataReceivedHandler(
object sender,
SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.Write(indata);
}
}
}
到目前为止,我已经跑了这个c并与连接到我的电脑的xbee模块连接。该xbee模块将串行数据发送到连接到msp430的另一个xbee。 msp430被编程为接收它所收到的任何内容并将其回显。这与我有的代码一起工作。在我的控制台中,我会得到“这是一个测试”回到控制台窗口。
问题我有当我使用虚拟串行连接到腻子窗口。我正在使用它来尝试简化开发,而不必一直使用硬件。我将使用HHD Free Virtual Serial Ports在两个串行端口之间创建桥接连接。我将连接一个到腻子终端,另一个将用于我的控制台程序。运行程序时,我收到错误。
“类型 'System.TimeoutException' 的第一次机会异常在System.dll中发生” 就行
mySerialPort.Write( “这是一个测试”);
但是“这是一个测试”将出现在腻子终端上。 如果我删除了“mySerialPort.Write(”This is a test“);”并尝试将数据从Putty窗口发送到控制台窗口,则不显示任何内容。
这再一次适用于我的硬件解决方案。
请帮助,我会尽力澄清任何问题。再次感谢你。
谢谢您的回答取代
!你碰巧有一个这样的电缆或转换器,你在谈论的链接?或者,您是否知道可以使用的软件解决方案? – ridonkulus
这个软件如果对我来说工作的很好:http://www.virtual-null-modem.com/至于硬件灵魂,这里是其中之一:http://www.ebay.com/itm/6-Null - 有线电视-6英尺-串行电缆DB9-9管脚女-RS232-调制解调器电缆数据电缆 -/181239097234 – Tony