2

我注意到 Arduino IDE 在启动/退出时由内置的串行应用程序自动重置,原因是

FT232RL 的其中一条硬件流控制线 (DTR) 通过 100 纳法电容连接到 ATmega1280 的复位线。当这条线被置位(拉低)时,复位线下降到足以复位芯片。

我注意到我的串行 C# 应用程序不会发生这种行为。我希望重置功能与我的 C# 应用程序一起使用。我没有做什么让我的 Arduino Mega 被我的 C# 应用程序重置?

Arduino 和 C# 的工作代码:

通过将一根电线从 PWM 端口 12 连接到 RESET 端口,我在大约 5 分钟内就让它工作了。在 Arduino 上,我检查了传入的 SerialEvent3 上的文本 RESET。找到 RESET 时,请执行以下操作:

pinMode(7, OUTPUT);  
digitalWrite(7, LOW);

至于 C#,它很简单:

if (serialPort1.IsOpen)
{ 
    serialPort1.Write("RESET"); 
}

重置似乎按预期工作。

4

1 回答 1

6

DTR 从 .NET SerialPort 类对我来说很好用。

只需设置属性:

port.DtrEnable = true;

如果您在 WinForms 设计器中使用 SerialPort,我注意到不同的默认值,但DtrEnable实际上true(默认情况下)是从控制台应用程序使用它时。

于 2012-06-28T07:07:43.530 回答