通过MSCOMM从VB6转换为C#到serialport

时间:2012-07-20 12:18:32

标签: c# vb6

我正在尝试将一些数据发送到通过串行端口工作的LED显示屏。这段代码完成VB6的工作,但我需要将其转换为C#。可悲的是,它不起作用。有什么想法吗?

VB6(示例)

MSComm1.CommPort = 1

MSComm1.Settings = "9600,N,8,1"

MSComm1.PortOpen = True

MSComm1.Output = Chr(170)

MSComm1.Output = Chr(2)

C#(示例)

var serialPort1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

serialPort1.Open();

serialPort1.Write(((char)170).ToString());

serialPort1.Write(((char)2).ToString());

serialPort1.Close();

我认为问题是关于serialPort1.Write函数,但我无法弄明白。你能帮忙吗?

2 个答案:

答案 0 :(得分:2)

我刚刚在C#中使用MSComm类解决了我的问题。大家帮助所有人:)

答案 1 :(得分:1)

还想出了如何使用serialPort类来完成它。重要的是使用设计器添加serialPort1定义而不是手动定义“var serialPort1 = new SerialPort(”COM1“,9600,Parity.None,8,StopBits.One);”。由于我猜测缺少定义,我的问题出现了。以下是样本:

Byte[] _bytesToSend = new Byte[7];
_bytesToSend[0] = 170;
_bytesToSend[1] = 2;
serialPort1.Open();
serialPort1.Write(_bytesToSend, 0, _bytesToSend.Length);
serialPort1.Close();