使用C#向串口发送写命令?

4

感谢您的帮助。我正在编写一个轻量级的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);

        }

    }

我该怎样让button1被点击时,将文本行发送到串口?代码必须尽可能简单,因为它只在一个工作站上运行。我查看了所有的示例,但无法将其与我的代码相适应。我也不想抄袭别人的代码来使它工作。任何建议将不胜感激。
编辑:上面的代码并非全部内容,例如,我正在正确地初始化端口。我还有另一段代码,可以正确接收和处理字符串,只是发送者方面有问题。我还使用表单设计器创建了按钮方法,所以应该没有什么问题。

11
“…不想抄袭别人的代码来让它工作” …你绝对不是程序员!;-) 翻译:你肯定不是一个程序员!;-) 你不想明目张胆地复制别人的代码来使得软件运行。 - Clive
2个回答

4

谢谢您的回复。端口已配置为系统默认值,因此初始化它们的各个参数是不必要的。 - TerrorTech

3
我建议:
  1. 使用 Click 事件而不是 MouseClick 事件。

  2. 如果你只是从某个地方复制了你的 button1_MouseClick 方法,那么该方法可能没有正确订阅点击事件。如果在 Visual Studio 设计器中双击按钮,它会自动为您设置正确订阅点击事件的方法。在那里,您可以放置您的 COM1.WriteLine(command);

  3. 如果这两个建议都不正确,那么你可能会在某个地方抛出异常(除非你打开了错误的端口)。在这种情况下,你应该在你的问题描述中描述这个错误。


感谢您的回复。将mouseclick更改为Click就可以了,但我不知道为什么!我是C#的新手,所以在按钮上不是双击,而是右键单击并选择“mouseclick”,因为这似乎是最有意义的,尽管我不知道自己在做什么。通过快速查看MSDN文档,我了解到了Click与MouseClick的区别。 - TerrorTech

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接