我的Arduino陷入无限循环,试图从引脚读取并将其打印到串行控制台。我现在无法上传任何其他程序。我该怎么做才能让芯片脱离循环?
答案 0 :(得分:7)
如果您使用的是Arduino Uno,则可能需要查看 Updating the Atmega8U2 on an Uno or Mega2560 using DFU 。显然,接口固件中存在一个错误。
答案 1 :(得分:5)
移除USB连接,关闭IDE,打开IDE,打开BareMinimum,按住重置按钮,插入USB连接,从复位按钮上移开手指后每秒1/2单击上传按钮。
答案 2 :(得分:1)
重新编程接口固件(请参阅ViennaMike的回复)对我不起作用,因此我购买了另一个Arduino并将其转变为ISP程序员并覆盖了违规应用程序:
https://stackoverflow.com/a/8453576/1090713
虽然这种方法有一定的成本,但我现在有了另一种工具和未来保存Arduino的方法。
答案 3 :(得分:0)
这可能听起来很愚蠢但是如何将其与电源断开以重置MCU呢?
修改强>
我看到它是通过USB供电的;然后确保断开设备,移除/放电任何电池/电容器。如果没有任何效果,请关闭Arduino IDE,更改您正在使用的USB端口(有时它会发生卡住 ..),重新启动PC ..祝您好运!
答案 4 :(得分:0)
使用Avr袖珍编程器上传您的启动加载程序。这解决了MCU重置问题。 在编写无限循环时使用看门狗定时器指令,前提是您正在处理重启时要写入的关键参数。
答案 5 :(得分:0)
如果您遇到与Arduino Yun相同的问题,请尝试使用WIFI作为端口上传空草图。当我无法通过USB上传新草图时,它对我有用。
答案 6 :(得分:0)
尝试上传时,Arduino会等待一会儿。因此,您可以按住重置并按住它,直到Ide显示尝试上载。然后放手吧。
问题可能是当您单击上载时,Ide首先编译然后在进程结束时尝试上载。因此,按下重置,单击编译并立即释放重置并不总是有效,因为您过快地放弃了重置。