- 1. Arduino开发板无法识别
- 2.板未同步
- 3.代码无法在电源重置时开始
- 4.无效的设备签名错误
- 5. Launch4j错误
- 6.串行端口已在使用中
- 7:草图上传成功,但是没有任何反应
- 8.不满意的链接错误
- 9.草图太大
- 10. java.lang.StackOverflowError
从Arduino的初学者开始,对于没有电子背景的人们来说可能是非常具有挑战性的,您会遇到错误,其中一些可能具有简单的解决方案,但可能需要几天才能解决。因此,为了使事情变得容易一些,我创建了一个列表,列出了10个最常见的Arduino错误以及可能的解决方案。
1. Arduino开发板无法识别
这是指计算机无法识别连接到计算机的Arduino板的情况。发生这种情况时,通常不在Arduino IDE的端口列表下列出该板,有时在设备管理器下将其标记为USB2.0。
解
当您使用某些廉价的Arduino克隆(使用CH340g USB到串行转换器芯片而不是FTDI(FT232RL)和其他标准Arduino板使用的克隆)时,就会发生这种情况。标准Arduino板使用的USB到串行芯片的驱动程序始终与Arduino IDE设置文件一起打包,因此,在安装IDE时,驱动程序会自动安装在PC上。为了能够使用基于CH340g USB到串行转换器的Arduino板,您必须下载并安装该芯片的驱动程序。可以从此链接下载驱动程序。安装只需点击如下所示的安装界面上的安装按钮即可。
完成此操作后,您现在应该能够在Arduino IDE上找到开发板所连接的端口。
2.板未同步
通常,发生这种情况时,您将无法上载代码(尽管IDE有时会显示“完成上载”)到Arduino板,并且IDE将显示错误代码。“ avrdude:stk500_getsync():不同步:resp = 0x00 ”。
解
的 同步:RESP = 0×00 是翻译为“一个通用的响应 的Atmega芯片不工作 的Arduino的”。发生这种情况时,可能会发生很多错误。这里是一些可用于清除此错误的步骤。
1.确保没有任何东西连接到Arduino上的数字引脚0和1(包括屏蔽)。
2.确保在“工具”菜单下选择了正确的COM和主板。
3.几次按下Arduino上的Reset(重置)按钮,然后重新上传代码。
4.断开Arduino并将其重新连接到PC。
5.重新启动Arduino IDE。
如果以上任何一项都不起作用,则可能是时候尝试在PC上使用其他Arduino板,或者在另一台PC上使用“故障” Arduino板。这应该可以帮助您确定问题的根源。如果发现问题出在PC上,请重新安装Arduino IDE。但是,如果“故障”的Arduino开发板是问题所在,那么最终的解决方案是使用Arduino固件刷新开发板。如果以上方法均无效,则可能是您更换Arduino板的时候了。
3.代码无法在电源重置时开始
这是指Arduino在通电时不运行上传到其的草图的情况,在大多数情况下,它们仅恢复为与引导加载程序关联的闪烁草图。
解
就像其他问题一样,有很多原因也可能导致这种情况。
如果该板挂起并且不执行任何操作,则应检查代码以确保未在其上发送串行数据至该板。当Arduino开启时,引导加载程序会在最初的几秒钟内侦听计算机,以将新的草图发送给计算机以上传到板上。如果未收到新草图,则不久后,引导加载程序将超时并运行上载到板上的最后一个草图。如果您的代码在前几分钟内发送串行数据,则引导加载程序不会超时,并且上载到板上的最后一个草图也不会启动。
如果在开发板上启动后立即发送串行数据是您项目的重要部分,则您可能需要找到一种方法来给它一些延迟,以阻止串行数据在Arduino启动后立即到达。如果进行调整会影响项目要执行的任务,那么您可能必须使用外部编程器将草图上载到板上,因为引导加载程序可以被其绕过。
如果开发板没有挂起,但返回到Arduino闪烁草图(引脚13上的LED时常闪烁),一个简单的解决方法就是用Arduino引导加载程序对开发板进行闪烁,因为开发板上的那个可能已损坏。 。
4.无效的设备签名错误
尝试将代码上传到板上时,与在Arduino IDE的tools> board列表下选择的代码不同,会显示此错误。该错误通常是由于目标板上的设备签名与IDE上选定的板上的签名不同而导致的。
解
解决此错误的方法非常简单,只需确保在Arduino IDE上选择了正确的电路板即可。如果这不起作用,则可能需要使用最新版本的Arduino引导加载程序刷新微控制器。
5. Launch4j错误
Arduino IDE有时在加载之前需要一段时间,并且在加载时,如果单击任何内容,它将显示Launch4J错误,如上所示。Launch4j是用于将Java应用程序(jar)包装在Windows本机可执行文件中的工具,允许将它们用作常规Windows程序。
Arduino IDE本身是用JAVA编写的,并且由于Arduino IDE附带的Java运行时环境(JRE)库不兼容而发生此错误。
解
根据经验,可以通过关闭PC的蓝牙或WiFi连接之类的简单方法清除此错误。但是,一个更完整和永久的解决方案是用最新版本替换Arduino包中的JRE。
6.串行端口已在使用中
这可能是最容易解决的错误之一。通常在打开串行监视器时尝试将代码上传到Arduino时发生(如果使用最新的IDE版本,这不再是问题),或者在Arduino与其他软件或设备对话时尝试启动串行监视器时发生通过串口。本质上,当您尝试同时将Arduino串行端口用于两个不同的事物时,会发生这种情况。
解
就像IDE所建议的那样,关闭可能使用com端口的所有其他软件/工具(包括串行监视器/绘图仪)。如果不确定特定软件,请拔下Arduino。插回电源时应该已经准备就绪。
7:草图上传成功,但是没有任何反应
此错误与上面已经解决的其他一些错误类似。对于此错误,Arduino IDE会建议代码已成功上传,但开发板不执行任何操作。
解
- 确保在IDE中选择的板与目标板相同。
- 这可能是由于草图尺寸大于电路板的容量。检查草图尺寸,并使用上述某些方法减小尺寸。
- 最后,当使用嘈杂的电源时,可能会发生此错误。确保电源足够稳定。
8.不满意的链接错误
这可能是使它进入此列表的唯一罕见错误。当您的PC上有旧版本的通信库时,就会发生这种情况,很可能是以前的安装。
解
要解决此错误,请在 /System/Library/Frameworks/JavaVM.framework/ 或PC的 CLASSPATH 或 PATH 环境变量的目录中搜索comm.jar或jcl.jar 。
9.草图太大
当您的代码大于该特定Arduino板的闪存时,会发生此错误。例如,Arduino Uno的闪存大小为32Kb,其中2KB已被Arduino引导程序使用。如果您上传的代码大小大于32Kb,则Arduino将显示此警告。
解
如上所述,当您的草图大于所使用的特定板的闪存时,就会发生这种情况,因此,要解决此问题,必须找到减少代码占用空间的方法。实现这一目标的一些技巧包括:
- 尽可能使用整数数据类型代替浮点数。
- 声明变量时,请尽可能使用“ const”限定符。
- 仅包括必要的库。尽可能使用最重要的库的轻量级版本。
- 一般对代码进行改进。开发可以帮助您使代码更短,通常更轻量的算法。
更为彻底的解决方案是将项目移至另一块板,例如Arduino Mega,与Uno相比,它具有更大的闪存。
10. java.lang.StackOverflowError
在处理草图时,Arduino使用一些正则表达式进行处理,并且在遇到某些与字符串相关的错误(例如缺少引号)时有时会感到困惑。
解
通过再次查看代码,尤其是使用字符串序列的部分,可以解决此错误。确保引号完整,正确使用反斜杠等。
单个教程中可以容纳的错误数量是有限制的,因此,我们将在这里停止。但是,此列表包含初学者在使用Arduin o时遇到的一些最常见的错误。您是否正在与一个特定的错误作斗争,随时发表评论,希望我们可以一起解决它。
下次。