如何“重置””一个Arduino板?

我已经将草图上传到Arduino Uno,其循环是这样的:
void loop(){
    Serial.println("Hello World");
}
所以,现在,我不能再上传任何东西了,因为IDE说“端口已经在使用”。 有没有办法在没有其他程序员的情况下“重置”Arduino? 编辑:     没有其他人使用串口,​​一切都很顺利,直到我上传了上一个草图。 编辑:     我发现了一些有趣的东西: Ubuntu 10.04 Lucid Lynx上0021的问题 Re:Ubuntu 10.04 Lucid Lynx上0021的问题 Uno发送串行数据变得无法连接到串行监视器     
已邀请:
请尝试以下方法: 准备基本的空程序(空设置,循环等) 编译它。 使用芯片上的硬件按钮重置Arduino 按Ctrl + U上传您的代码。 如果不成功 - 得到3。 在引导加载程序启动程序之前有一段延迟,只需处理您的计时。当我的Arduino代码中的一个错误每500毫秒执行一次软重置时,它对我有用。     
我在两个Arduinos(一个Uno和一个现代设备Freeduino / USB主机板)上遇到了同样的问题,并且重置和串口使用开始之间的窗口非常小,无法上传。 我最后通过购买另一个Arduino Uno并按照这些说明构建ISP电缆来解决问题,并使用它将示例中的Bare Bones应用程序闪存到每个无法访问的板,使用Arduino IDE版本0023,按照这些说明更改preferences.txt 。 (确保在编辑之前保存原始文件,以便在您获救Arduino后可以替换它。) 它需要一个快速上传来修复每个板。经过这么多的悲痛之后,这么快就解决了。您可能不想购买另一个Arduino,但请考虑以下好处: 您可以覆盖Arduino上的引导加载程序以获得更多空间。 一旦覆盖了引导加载程序,电路板就会更快启动。 据说你可以为特殊项目编写原始AVR,但我还没有尝试过:Google for ArduinoISP 它将很快修复你将来阻止的Arduinos。 您现在可以安全地尝试找到防止串行端口使用在将来锁定设备的方法。     
确保将arduino直接插入计算机而不是通过集线器。使用集线器会给您带来此错误。     
根据我对已经使用或阻止的通信的经验,我会说你正在连接的程序仍然打开通信。我还发现,如果你断开USB线,它将恢复通信。它不是最好的解决方案,但它解决了这个问题。我希望有所帮助。     
我只花了最近5个小时寻找这个问题的解决方案(串口COM3已经在使用,灰色的串口)...我尝试了所有可以找到的论坛,包括这个... 什么最终修复它(摆脱我输入的最后一个代码被卡住并上传简单的闪烁功能)?请点击此链接 - http://arduino.cc/zh/guide/windows,并按照安装驱动程序的说明进行操作。我的驱动程序“已经是最新的”,但按照这些步骤修复了故障。我现在又是一个快乐的露营者了。 注意:使用芯片上的按钮手动重置电路板,或通过misc以数字方式重置电路板。互联网上的代码无法解决这个问题,因为我的arduino uno和笔记本电脑的端口之间的信号被某种方式阻塞/混淆了。更新驱动程序就像重置“已在使用的串口”问题。 至少到目前为止..     
在对这个问题摸不着头脑之后,这里有一个非常简单的解决方案可以随时工作: 拔下USB线 进入你的设备管理器 点击Ports(COM& LPT) 右键单击Arduino ....(COMx) 属性 端口设置 将流量控制放入硬件 创建一个空草图(*可选) 连接USB电缆 上传(Ctrl - U)
// Emtpy Sketch to fix upload problem
// Create by Eric Phenix
// Nov 2014

void setup() 
{ 
} 

// the loop routine runs over and over again forever:
void loop()
{ 
delay(1000);                            
}
瞧瞧! 埃里克     
确保您没有从终端访问串行端口,该循环(或任何代码)不应阻止Arduino被编程。     
如果您仍然打开串行控制台,它将保留串行端口。关闭它,然后再试一次。     
对于Arduino Yun用户,请尝试通过以太网/ WiFi(工具 - >端口)上传。 我有完全相同的问题,我尝试了很多东西(除了刻录新的bootloader)。我很惊讶它有效,但我已经上传了空草图而没有任何问题。     
我遇到了类似的问题。 如果我启动myarduino上传程序执行前有延迟。 所以我使用延迟上传新程序或空程序:
void setup(){} 
 void loop(){}
所以我的问题解决了 在上传之前拔掉与arduino引脚的任何连接。     
这是我在Linux中所做的,能够对我的Arduino Micro进行编程,当通过USB连接时,它被卡在一个发送0键的循环中;
# while true; do xinput float $(xinput --list | grep -i Arduino | awk '{print $7}' | cut -d'=' -f 2); done
您的输出可能略有不同,所以只需尝试运行;
# watch xinput --list
然后插入Arduino并查看输出的格式。 这阻止了X接受按键并允许Arduino IDE最终编程!     
我也有这个问题,我尝试了上面的方法,似乎没有一个工作,但是确实有效的东西(不知何故,不确定它是不是只是一个怪物或它实际上是一种方法) 从duino拔下USB 按住重置按钮 插入USB并打开电源 继续按住并上传草图。完成上传后,释放重置按钮。     
我今天遇到了同样的问题。这是我们发现解决此问题的简单解决方案(感谢Anghiara): 不要使用屏幕上的“上传按钮”(带有绿色箭头的圆圈)将新代码加载到arduino,而是使用鼠标单击“草图”,然后单击“上传”。 在使用serial.println()和循环时,请记住在代码中添加delay()行。我用艰难的方式吸取了教训。     
Arduino Leonardo董事会 拔下USB线 将Rx引脚与地连接 插上USB线 上传新程序 拔下USB线 拆下Rx接地 这对我有用,我也希望你。     
如果端口显示已经使用过,那么您可能使用了错误的端口。 如果你连接了你的arduino并将它切换到端口 然后尝试重新上传,你一定会看到它的工作。     
如果没有任何帮助,那么你应该再安排一个电路板并尝试通过Arduino作为ISP选项进行闪存,如下所示https://www.arduino.cc/en/Tutorial/ArduinoISP或https://www.arduino.cc/en /教程/ ArduinoToBreadboard。而不是启动加载程序,您可以选择自己的程序通过ISP闪存     
从微控制器上拔下Tx 插入USB线 等到满载 将Rx与硬件连接 在prosses中编译空草图并断开tx(不要担心错误) 将Rx与硬件连接 编译空草图 关闭电源并连接Tx     
我也有你的问题,我使用以下步骤解决了问题: (虽然您可能已经完成了问题,但它只是为访问此页面的任何人分享) 拔掉你的arduino 准备空设置和空循环程序 在程序结束时写一个注释符号'//' 将键盘指针设置在“//”符号旁边 将你的arduino插入计算机,等到arduino完全启动并输出'Hello World' 您将看到“Hello World”输出脚本将显示为注释,因此您可以安全地单击[upload]。 希望它有所帮助。     
1.首先连接你的aurduino设备。 2.然后转到设备管理器并卸载驱动程序。 3.现在删除你的aurduino设备。 4.Again连接你的aurduino设备到您的系统。 5.现在安装驱动程序(之前已卸载)。 它肯定会释放你的端口。     
如果您尝试通过USB电缆进行编程,这是最好的方法: 将电路板上的Tx信号接地(将数字I / O#1连接到GND) 插上USB线 上传新程序 拔下USB线 移除Tx接地 你们都准备好了!     

要回复问题请先登录注册