我注意到 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");
}
重置似乎按预期工作。