我已将sketch上传到Arduino Uno,其循环如下:
void loop(){
Serial.println("Hello World");
}
所以,现在,我再也无法上传任何东西了,因为IDE说“端口已经在使用”。
有没有办法在没有其他程序员的情况下“重置”Arduino?
编辑:
没有其他人使用串口,一切都很顺利,直到我上传了上一个草图。
编辑:
我发现了一些有趣的事情:
答案 0 :(得分:24)
尝试以下方法:
启动加载程序启动程序之前有一段延迟,只是处理你的计时。当我的Arduino代码中的一个错误每500毫秒执行一次软复位时,它对我有用。
答案 1 :(得分:5)
我在两个Arduinos(一个Uno和一个现代设备Freeduino / USB主机板)上遇到了同样的问题,并且重置和串口使用开始之间的窗口很小,无法上传。
我最终通过购买另一个Arduino Uno并按照these instructions构建ISP电缆来修复此问题,并使用它将示例中的Bare Bones应用程序刷新到每个无法访问的电路板,使用Arduino IDE版本0023,跟随{ {3}}更改preferences.txt。 (确保在编辑之前保存原始文件,以便在您获救Arduino后可以替换它。)
需要快速上传才能修复每个主板。经过这么多的悲痛之后,这么快就解决了。您可能不想购买另一个Arduino,但请考虑以下好处:
答案 2 :(得分:2)
确保将arduino直接插入计算机,而不是通过集线器。使用集线器会出现此错误。
答案 3 :(得分:1)
根据我对已经使用或阻止的通信的经验,我会说你正在接口的程序仍然打开通讯。我还发现,如果你断开USB线,它将恢复通信。它不是最好的解决方案,但它解决了这个问题。我希望有所帮助。
答案 4 :(得分:1)
我只花了最近5个小时寻找这个问题的解决方案(串口COM3已经在使用,灰色的串口)...我尝试了所有可以找到建议的论坛,包括这个......
最终解决了什么(摆脱了最后一个代码我输入卡住并上传了简单的闪烁功能)?请点击此链接 - http://arduino.cc/en/guide/windows并按照安装驱动程序的说明进行操作。我的驱动程序已经#34;已经是最新的#34;但是按照这些步骤修复了故障。我现在再次成为一个快乐的露营者。
注意:使用芯片上的按钮手动重置电路板,或通过misc以数字方式重置电路板。互联网上的代码无法解决这个问题,因为我的arduino uno和笔记本电脑的端口之间的信号被某种方式阻塞/混淆了。更新驱动程序就像重置已经使用的"串口"问题。
至少到目前为止..
答案 5 :(得分:1)
在解决这个问题之后,这里有一个非常简单的解决方案随时可用:
// 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);
}
瞧瞧! 埃里克
答案 6 :(得分:0)
如果您仍然打开串行控制台,它将保留串行端口。关闭它,然后再试一次。
答案 7 :(得分:0)
它对于arduino nano 33物联网的唯一工作方式是连续多次按下板上的重置按钮,然后再按下uoplad!
答案 8 :(得分:0)
如果没有帮助,那么您应该再安排一块板,并尝试通过Arduino作为ISP选项通过Arduino对其进行刷新,如此处https://www.arduino.cc/en/Tutorial/ArduinoISP或https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard所示。除了引导加载程序,您还可以选择自己的程序通过ISP刷新
答案 9 :(得分:0)
如果端口显示已经使用过,那么您可能使用了错误的端口。 如果你连接了你的arduino并将它切换到端口 然后尝试重新上传,你一定会看到它的工作。
答案 10 :(得分:0)
Arduino Leonardo Board
这对我有用,我也希望你。
答案 11 :(得分:0)
今天我遇到了同样的问题。以下是我们发现解决此问题的简单解决方案(感谢Anghiara):
不要使用屏幕上的“上传按钮”(带有绿色箭头的圆圈)将新代码加载到arduino,而是使用鼠标单击“草图”,然后单击“上传”。
使用serial.println()和循环时,请记住在代码中添加delay()行。我用艰难的方式吸取了教训。
答案 12 :(得分:0)
我也有这个问题,我尝试了上面的方法,似乎没有一个工作,但是确实有效(不知何故,不确定它是否只是一个怪物或它实际上是一种方法)
答案 13 :(得分:0)
这是我在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最终编程!
答案 14 :(得分:0)
我遇到了类似的问题。
如果我启动myarduino上传程序执行前有延迟。
所以我用这个延迟上传新程序或空程序:
void setup(){}
void loop(){}
所以我的问题解决了。
在上传之前拔掉与arduino引脚的任何连接。
答案 15 :(得分:0)
对于 Arduino Yun 用户,请尝试通过以太网/ WiFi (工具 - >端口)进行上传。 我有完全相同的问题,我尝试了很多东西(除了刻录新的bootloader)。我很惊讶它有效,但我已经上传空草图而没有任何问题。
答案 16 :(得分:0)
确保您没有从终端访问串行端口,该循环(或任何代码)不应阻止Arduino被编程。
答案 17 :(得分:-1)
我也有你的问题,我使用以下步骤解决了问题: (虽然您可能已经完成了问题,但它只是为访问此页面的任何人分享)
答案 18 :(得分:-1)
1.首先连接你的aurduino设备。 2.然后转到设备管理器并卸载驱动程序。 3.现在删除你的aurduino设备。 4.Again连接你的aurduino设备到您的系统。 5.现在安装驱动程序(之前已卸载)。
它肯定会释放您的端口。
答案 19 :(得分:-1)
答案 20 :(得分:-2)
如果您尝试通过USB电缆进行编程,这是最佳方法:
你们都准备好了!