[英]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.