如何使用C#应用程序重置Arduino Mega2560?

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

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

我注意到我的串行C#应用程序不会发生这种行为。 我希望重置function适用于我的C#应用​​程序。 我没有做什么让我的C#应用​​程序重置我的Arduino Mega?

Arduino和C#的工作代码:

通过将PWM Port12的电线连接到RESET端口,我在大约5分钟内完成了工作。 在Arduino上,我检查了传入的SerialEvent3上的文本RESET。 找到RESET时:

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

至于C#,它很简单:

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

重置似乎按预期工作。

从.NET SerialPort类开始,DTR对我来说很好。

只需设置属性:

 port.DtrEnable = true; 

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