C# Arduino串行监视器和java重置变量

C# Arduino串行监视器和java重置变量,c#,java,serial-port,usb,arduino,C#,Java,Serial Port,Usb,Arduino,我编写了一个小应用程序来打开连接到Arduino板的LED灯。应用程序通过USB端口发送特定字节值以打开LED,发送特定值以关闭LED。奇怪的是,出于某种原因,当我在arduino开发环境中使用串行监视器打开LED,然后关闭串行监视器时,LED会在我没有输入正确字节值的情况下关闭,在我的java测试应用程序中也会发生同样的情况。让我困惑的是,在我的C#应用程序中,我可以输入正确的字节值来打开LED,然后关闭我的应用程序,LED仍然亮着。我完全不明白为什么会发生这种情况。led的初始状态是什么,打

我编写了一个小应用程序来打开连接到Arduino板的LED灯。应用程序通过USB端口发送特定字节值以打开LED,发送特定值以关闭LED。奇怪的是,出于某种原因,当我在arduino开发环境中使用串行监视器打开LED,然后关闭串行监视器时,LED会在我没有输入正确字节值的情况下关闭,在我的java测试应用程序中也会发生同样的情况。让我困惑的是,在我的C#应用程序中,我可以输入正确的字节值来打开LED,然后关闭我的应用程序,LED仍然亮着。我完全不明白为什么会发生这种情况。

led的初始状态是什么,打开还是关闭?
当您通过串行监视器打开与Arduino的串行连接时,Arduino会自动复位。

led的初始状态是什么,打开还是关闭?
当您通过串行监视器等打开与Arduino的串行连接时,Arduino会自动复位。

来自Arduino Uno的描述:


如果您在Windows下使用C#,则在USB连接上不会重置电路板。我假设您在其他平台上运行Java

根据Arduino Uno的描述:


如果您在Windows下使用C#,则在USB连接上不会重置电路板。我假设您在其他平台上运行Java

我刚刚在另一个线程中找到了答案(对于C#):


在C#中设置串口对象DtrEnable=true,现在当我连接C#时,Arduino将重置

我刚刚在另一个线程中找到了答案(对于C#):


在C#中设置串口对象DtrEnable=true,现在当我连接C#时,Arduino将重置

led的初始状态为关闭。出于某种原因,当我使用dev环境或java测试应用程序时,Arduino似乎会重置自己,但当我使用C#Figures时却不会;也许Java和串行监视器关闭了串行连接,而C#应用程序没有关闭?事实上,您的arduino在能够发送/接收串行数据之前需要重置。在arduino上的程序的setup()部分中放入一段简单的代码-使其LED闪烁两次(然后将其保持在关闭状态)。这样,您就可以知道它已被重置,并且主程序已准备好输入…led的初始状态为关闭。出于某种原因,当我使用dev环境或java测试应用程序时,Arduino似乎会重置自己,但当我使用C#Figures时却不会;也许Java和串行监视器关闭了串行连接,而C#应用程序没有关闭?事实上,您的arduino在能够发送/接收串行数据之前需要重置。在arduino上的程序的setup()部分中放入一段简单的代码-使其LED闪烁两次(然后将其保持在关闭状态)。这样,您就可以知道它已被重置,并且主程序已准备好输入…如果您包含正在使用的Arduino板的信息(因为它们的行为方式不同)以及您的主机环境(Linux、Windows、Mac)是什么,则可以减少猜测。请看下面我的答案。如果您包含您正在使用的Arduino板的信息(因为它们的行为方式不同)以及您的主机环境(Linux、Windows、Mac)是什么,则可以减少猜测。见下面我的答案。
This setup has other implications. When the Uno is connected to either 
a computer running Mac OS X or Linux, it resets each time a connection 
is made to it from software (via USB).