提前感谢您的帮助。我正在编写一个轻量级的C#程序来将行写入串行端口(向PLC发送命令)以便工作,我不是程序员。我的问题是我的按钮不会将线路发送到串口。这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
string command = "Turn Motor";
SerialPort COM1 = new SerialPort("COM1");
public Form1() {
InitializeComponent();
COM1.Open();
}
private void button1_MouseClick(object sender, MouseEventArgs e) {
COM1.WriteLine(command);
}
}
如何使按钮1单击将文本行发送到串行端口?代码必须尽可能简单,因为它只能在一个工作站上运行。我查看了所有示例,但无法使它们适应我的代码。我也不想公然扯掉别人的代码来让它运转起来。任何意见,将不胜感激。
编辑:上面的代码并非一切,例如我正在初始化端口。我有另一段代码正确接收和处理字符串,它只是我遇到问题的发件人。我还使用表单设计器创建了按钮方法,因此应该没有断开连接。答案 0 :(得分:3)
我建议:
使用Click
事件代替MouseClick
事件。
如果您刚刚从某个示例复制了button1_MouseClick
方法,那么该方法可能无法正确订阅Click事件。如果双击Visual Studio设计器中的按钮,它将自动为您正确设置订阅click事件的方法。这就是你放置COM1.WriteLine(command);
如果这两个建议都不正确,您可能会在某处抛出异常(除非您打开了错误的端口)。在这种情况下,您应该在这里描述您的问题中的错误。
答案 1 :(得分:3)
看起来您没有初始化您的Com端口。您需要设置BaudRate
,Parity
,DataBits
,StopBits
和Handshake
属性。请查看上面的MSDN示例以获得指导。您可以单独设置属性,也可以在构造函数中设置它们。
根据MSDN,上述属性的默认值为: