首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Arduino输入触发C#函数

使用Arduino输入触发C#函数
EN

Stack Overflow用户
提问于 2019-08-26 16:24:48
回答 1查看 153关注 0票数 1

我使用的是C#、Visual Studio和Arduino。我的整个系统有点复杂。但在这里我想知道一件简单的事情。当arduino UNO中的某个引脚获得HIGH.That时,我想触发C#函数。这意味着我想从arduino获取visual studio系统的输入并运行该函数。

我尝试了下面的代码,这是从互联网上找到的。但是我不能正确地使用它。我在u管中尝试了更多不同的方法。但都以失败告终。

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

代码语言:javascript
复制
  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);
        }
    }

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

EN

回答 1

Stack Overflow用户

发布于 2019-08-27 01:52:46

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

我相信对你来说最容易使用的结构是主从结构。

我建议您使用以下函数处理与串行端口的连接:

代码语言:javascript
复制
 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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57654282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档