Serial port “我怎么能?”;重置";Arduino董事会?

Serial port “我怎么能?”;重置";Arduino董事会?,serial-port,arduino,reset,Serial Port,Arduino,Reset,我已经上传了一个Arduino Uno,其循环如下: void loop(){ Serial.println("Hello, World!"); } 所以,现在,我不能再上传任何东西了,因为IDE上写着“端口已经在使用” 有没有一种方法可以在没有其他程序员的情况下“重置”Arduino 没有其他东西在使用串行端口,一切都很顺利,直到我上传了之前的草图 我发现了一些有趣的事情: 确保您没有从终端访问串行端口。该循环(或任何代码)不应阻止对Arduino进行编程。如果串行控制台仍然

我已经上传了一个Arduino Uno,其循环如下:

void loop(){
    Serial.println("Hello, World!");
}
所以,现在,我不能再上传任何东西了,因为IDE上写着“端口已经在使用”

有没有一种方法可以在没有其他程序员的情况下“重置”Arduino

没有其他东西在使用串行端口,一切都很顺利,直到我上传了之前的草图

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


确保您没有从终端访问串行端口。该循环(或任何代码)不应阻止对Arduino进行编程。

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

根据我对已经使用或被阻止的通信的经验,我想说您正在与之交互的程序仍然打开通信

我还发现,如果你断开USB电缆,它将停止通信。这不是最好的解决方案,但它解决了问题。

尝试以下方法:

  • 准备基本的空程序(空设置、循环等)
  • 编译它
  • 使用芯片上的硬件按钮重置Arduino
  • 按Ctrl+U以上载代码
  • 如果不成功,则转到3

  • 在引导加载程序启动程序之前有一个延迟,只需调整时间即可。当我的Arduino代码中的一个bug每500毫秒执行一次软重置时,它对我起到了作用。

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

    我最终修复了这个问题,购买了另一个Arduino Uno,并根据构建了一条ISP电缆,使用Arduino IDE版本0023将示例中的裸体应用程序闪存到每个无法访问的板中,然后更改preferences.txt。(请确保在编辑原始文件之前保存该文件,以便在解救Arduino后替换它。)

    只需一次快速上传即可修复每个板。在经历了这么多的悲伤之后,这么快就解决了。您可能不想购买另一个ARDUNO,但是考虑这些好处:

    • 您可以覆盖Arduino上的引导加载程序以获得更多空间
    • 一旦引导加载程序被覆盖,电路板将更快地引导
    • 据推测,您可以为特殊项目编写原始AVR,但我还没有尝试过:谷歌为ArduinoISP
    • 它将很快修复您在将来阻止的Arduinos
    • 您现在可以安全地进行实验,以找到防止将来使用串行端口锁定设备的方法
  • 从微控制器上拔下Tx
  • 插入USB电缆
  • 等到满载
  • 将Rx与硬件连接
  • 在prosses中编译空草图并断开tx连接(不要担心错误)
  • 将Rx与硬件连接
  • 编空草图
  • 关闭电源并连接Tx

  • 如果您试图通过USB电缆编程,以下是最好的解决方法:

  • 将电路板上的Tx信号接地(将数字1连接到GND)
  • 插入USB电缆
  • 上传新程序
  • 卸下USB电缆
  • 移除Tx接地

  • 你们都准备好了

    确保将Arduino直接插入计算机,而不是通过集线器。使用集线器将导致此错误。

    对于用户,请尝试通过以太网/Wi-Fi上传(菜单工具→ 端口)


    我也遇到了同样的问题,我尝试了几乎所有的方法(除了烧掉一个新的引导加载程序)。我很惊讶它能起作用,但我上传了一个空的草图,没有任何问题。

    我刚刚花了五个小时寻找这个问题的解决方案(串口COM3已经在使用,串口变灰了)…我尝试了所有我能找到的论坛和问答网站建议的一切,包括这个

    是什么最终修复了它(去掉了我输入的最后一个卡住的代码并上传了简单的闪烁功能)

    遵循此链接,并按照安装驱动程序的说明进行操作。我的司机“已经是最新的”,但按照这些步骤修复了故障。我现在又是一个快乐的露营者了

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


    至少到目前为止…

    我也遇到了您的问题,我通过以下步骤解决了问题(尽管您可能已经完成了问题,但它只供访问此页面的任何人共享):

  • 拔下你的Arduino
  • 准备一个空设置和空循环程序
  • 在程序末尾写一个注释符号“/”
  • 将键盘指针设置在“/”符号旁边
  • 将您的Arduino插入计算机,等待Arduino完全启动,它将输出“Hello,World!”
  • 你会看到“你好,世界!”输出脚本将显示为注释,因此您可以单击“安全上载”
    在我对这个问题摸不着头脑之后,这里有一个非常简单的解决方案,可以随时使用:

    • 拔下USB电缆
    • 进去
    • 单击端口(COM和LPT)
    • 右键单击Arduino…(COMx)
    • 性质
    • 端口设置
    • 将流量控制置于硬件
    • 创建空草图(可选)
    • 连接USB电缆
    • 上传(Ctrl+U)



    我也遇到了类似的问题

    如果我打开我的Arduino,在上传的程序执行之前会有一个延迟

    因此,我使用该延迟上载新程序或空程序:

    void setup(){}
    
    void loop(){}
    
    所以我的问题解决了

    void setup(){}
    
    void loop(){}
    
    # while true; do xinput float $(xinput --list | grep -i Arduino | awk '{print $7}' | cut -d'=' -f 2); done
    
    # watch xinput --list