繁体   English   中英

使用 Arduino 输入触发 C# 函数

[英]Triggering a C# function using Arduino input

我正在使用 C#、Visual Studio 和 Arduino。 我的整个系统有点复杂。 但在这里我想知道一个我认为的简单事情。 我想在 arduino UNO 中的某个引脚变高时触发 C# 函数。这意味着我想从 arduino 获取 Visual Studio 系统的输入并运行该函数。

我尝试了以下从互联网上找到的代码。 但我无法正确使用它。 我在u管中尝试了更多的各种方法。 但一切都失败了。

还想告诉我正在开发RFID阅读器的固件系统。 所以有这么多的类和函数。 而且阅读器的阅读功能正在持续运行,我想使用此触发器来停止该功能并关闭应用程序。

  using System;
    using System.IO.Ports;

    class PortDataReceived
    {
        public static void Main()
        {
            SerialPort mySerialPort = new SerialPort("COM1");

            mySerialPort.BaudRate = 9600;
            mySerialPort.Parity = Parity.None;
            mySerialPort.StopBits = StopBits.One;
            mySerialPort.DataBits = 8;
            mySerialPort.Handshake = Handshake.None;
            mySerialPort.RtsEnable = true;

            mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

            mySerialPort.Open();

            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.WriteLine("Data Received:");
            Console.Write(indata);
        }
    }

所以,请帮助我做到这一点。 这是我第三年工业项目的最后一步。 我被困在这里。

您是否验证了 arduino 连接的 COM 端口是您的代码中使用的端口? 另外,你在arduino上运行的代码是什么? 将其显示出来会很有帮助,以便我们更好地了解您是如何处理您的问题的。

我相信您使用的最简单的结构是主从结构。

我建议您使用此功能处理与串口的连接:

 Private Sub CommPortSetup()
   With mySerialPort
     .PortName = "COM10"
     .BaudRate = 38400
     .DataBits = 8
     .Parity = Parity.None
     .StopBits = StopBits.One
     .Handshake = Handshake.None
   End With
   Try
     mySerialPort.Open()
     Catch ex As Exception
     MessageBox.Show(ex.Message)
   End Try
 End Sub

这样,如果连接不成功,您将处理异常。 我在您的代码中看不到确定连接是否已建立的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM