如何“重置”Arduino板?

时间:2011-03-13 15:47:11

标签: serial-port arduino reset

我已将sketch上传到Arduino Uno,其循环如下:

void loop(){
    Serial.println("Hello World");
}

所以,现在,我再也无法上传任何东西了,因为IDE说“端口已经在使用”。

有没有办法在没有其他程序员的情况下“重置”Arduino?

编辑:
    没有其他人使用串口,​​一切都很顺利,直到我上传了上一个草图。

编辑:
    我发现了一些有趣的事情:

21 个答案:

答案 0 :(得分:24)

尝试以下方法:

  1. 准备基本的空程序(空设置,循环等)
  2. 编译它。
  3. 使用芯片上的硬件按钮重置Arduino
  4. Ctrl + U 上传您的代码。
  5. 如果不成功 - 得到3。
  6. 启动加载程序启动程序之前有一段延迟,只是处理你的计时。当我的Arduino代码中的一个错误每500毫秒执行一次软复位时,它对我有用。

答案 1 :(得分:5)

我在两个Arduinos(一个Uno和一个现代设备Freeduino / USB主机板)上遇到了同样的问题,并且重置和串口使用开始之间的窗口很小,无法上传。

我最终通过购买另一个Arduino Uno并按照these instructions构建ISP电缆来修复此问题,并使用它将示例中的Bare Bones应用程序刷新到每个无法访问的电路板,使用Arduino IDE版本0023,跟随{ {3}}更改preferences.txt。 (确保在编辑之前保存原始文件,以便在您获救Arduino后可以替换它。)

需要快速上传才能修复每个主板。经过这么多的悲痛之后,这么快就解决了。您可能不想购买另一个Arduino,但请考虑以下好处:

  • 您可以覆盖Arduino上的引导加载程序以获得更多空间。
  • 一旦覆盖了引导程序,电路板就会启动得更快。
  • 据说你可以为特殊项目编写原始AVR,但我还没试过:Google for ArduinoISP
  • 它会很快修复你将来阻止的Arduinos。
  • 您现在可以安全地尝试寻找防止串行端口使用在未来锁定设备的方法。

答案 2 :(得分:2)

确保将arduino直接插入计算机,而不是通过集线器。使用集线器会出现此错误。

答案 3 :(得分:1)

根据我对已经使用或阻止的通信的经验,我会说你正在接口的程序仍然打开通讯。我还发现,如果你断开USB线,它将恢复通信。它不是最好的解决方案,但它解决了这个问题。我希望有所帮助。

答案 4 :(得分:1)

我只花了最近5个小时寻找这个问题的解决方案(串口COM3已经在使用,灰色的串口)...我尝试了所有可以找到建议的论坛,包括这个......

最终解决了什么(摆脱了最后一个代码我输入卡住并上传了简单的闪烁功能)?请点击此链接 - http://arduino.cc/en/guide/windows并按照安装驱动程序的说明进行操作。我的驱动程序已经#34;已经是最新的#34;但是按照这些步骤修复了故障。我现在再次成为一个快乐的露营者。

注意:使用芯片上的按钮手动重置电路板,或通过misc以数字方式重置电路板。互联网上的代码无法解决这个问题,因为我的arduino uno和笔记本电脑的端口之间的信号被某种方式阻塞/混淆了。更新驱动程序就像重置已经使用的"串口"问题。

至少到目前为止..

答案 5 :(得分:1)

在解决这个问题之后,这里有一个非常简单的解决方案随时可用:

  • 拔下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);                            
}

瞧瞧! 埃里克

答案 6 :(得分:0)

如果您仍然打开串行控制台,它将保留串行端口。关闭它,然后再试一次。

答案 7 :(得分:0)

它对于arduino nano 33物联网的唯一工作方式是连续多次按下板上的重置按钮,然后再按下uoplad!

答案 8 :(得分:0)

如果没有帮助,那么您应该再安排一块板,并尝试通过Arduino作为ISP选项通过Arduino对其进行刷新,如此处https://www.arduino.cc/en/Tutorial/ArduinoISPhttps://www.arduino.cc/en/Tutorial/ArduinoToBreadboard所示。除了引导加载程序,您还可以选择自己的程序通过ISP刷新

答案 9 :(得分:0)

如果端口显示已经使用过,那么您可能使用了错误的端口。 如果你连接了你的arduino并将它切换到端口 然后尝试重新上传,你一定会看到它的工作。

答案 10 :(得分:0)

Arduino Leonardo Board

  1. 拔下USB连接线
  2. 将Rx引脚接地
  3. 插入USB连接线
  4. 上传新计划
  5. 取下USB连接线
  6. 删除Rx接地
  7. 这对我有用,我也希望你。

答案 11 :(得分:0)

今天我遇到了同样的问题。以下是我们发现解决此问题的简单解决方案(感谢Anghiara):

不要使用屏幕上的“上传按钮”(带有绿色箭头的圆圈)将新代码加载到arduino,而是使用鼠标单击“草图”,然后单击“上传”。

使用serial.println()和循环时,请记住在代码中添加delay()行。我用艰难的方式吸取了教训。

答案 12 :(得分:0)

我也有这个问题,我尝试了上面的方法,似乎没有一个工作,但是确实有效(不知何故,不确定它是否只是一个怪物或它实际上是一种方法)

  1. 从duino中拔出USB
  2. 按住重置按钮
  3. 插入USB并打开电源
  4. 继续按住并上传草图。完成上传后,请释放重置按钮。

答案 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)

我也有你的问题,我使用以下步骤解决了问题: (虽然您可能已经完成了问题,但它只是为访问此页面的任何人分享)

  1. 拔掉你的arduino
  2. 准备空设置和空循环程序
  3. 在程序结束时写一个评论符号'//'
  4. 将键盘指针设置在“//”符号
  5. 旁边
  6. 将你的arduino插入计算机,等到arduino完全重启并输出'Hello World'
  7. 您将看到“Hello World”输出脚本将显示为注释,因此您可以安全地单击[upload]。 希望它有所帮助。

答案 18 :(得分:-1)

1.首先连接你的aurduino设备。 2.然后转到设备管理器并卸载驱动程序。 3.现在删除你的aurduino设备。 4.Again连接你的aurduino设备到您的系统。 5.现在安装驱动程序(之前已卸载)。

它肯定会释放您的端口。

答案 19 :(得分:-1)

  1. 从微控制器上拔下Tx
  2. 插入USB连接线
  3. 等到满载
  4. 使用硬件连接Rx
  5. 在prosses中编译空草图并断开tx(不要担心错误)
  6. 使用硬件连接Rx
  7. 编译空草图
  8. 关闭电源并连接Tx

答案 20 :(得分:-2)

如果您尝试通过USB电缆进行编程,这是最佳方法:

  1. 将电路板上的Tx信号接地(将数字I/O#1连接到GND)
  2. 插入USB连接线
  3. 上传新计划
  4. 取下USB连接线
  5. 删除Tx接地
  6. 你们都准备好了!