Arduino常见报错汇总

来自ALSROBOT WiKi
跳转至: 导航搜索

目录

概述

在使用Arduino进行开发的过程中,编译代码出错,是比较常见的事情。其实编译程序,就是让计算机帮你检查有没有错误。所有的编译器如果出错,下边都会有错误代码,错误出现在哪一行,可以到编译器的help中找错误代码的意思。这里为大家整理了遇到的Arduino IDE 编译/上传出错的原因。

编译出错

1、程序书写格式/语法有误

  • 如图所示为大家列举了一个例子:

(1)缺少程序大括号" } "

Als01.png

(2)程序语句中缺少分号" ; "

Als02.png

2、中英文字符错误 Arduino IDE 如果程序中使用中文、标点使用中文形式都会产生编译报错,只要将中文字符,改为英文字符即可。

  • 如图所示为大家列举了一个例子:

程序中使用了中文括号"()"

Als03.png

3、语法错误
包括结构错误、关键词写错、缺少变量的定义

  • 如图所示为大家列举了一个例子:

程序中使用的关键字错误,在 Arduino 中是需要区分大小写字母的,也就是说"digitalWrite"与"digitalwrite"是不等同的!

Als04.png

4、注释错误
为了让程序更容易被读懂,很多情况下,需要给程序做注释,这时一定要注意单行注释使用符号"//",将注释的文字与程序隔开;多行注释使用"/* 注释文字 */"。如果注释符号使用有误也会导致编译报错,如图所示:
注意:正常的注释文字在 Arduino IDE 中显示为灰色

Als12.png

5、库文件没有加载 库文件主要指.cpp & .h两个文件,分为手动加载(需重启IDE)和 IDE自动加载(无需重启)

首先将 Arduino - libraries 下的 Wire 库两个文件删掉,打开样例程序,由于没有库文件,就会编译出错:

Als05.png

将库文件再次放回到 Arduino 库文件目录下,重启 Arduino IDE 软件 ,再次编译该程序,就不会出现报错信息了。

Als06.png

注意:如果 Arduino 程序编译出错,会在下面的编译栏中出现错误提示信息,根据错误提示的信息,我们可以大概知道书写错误的位置
6、库文件过期
库文件过期或者创建者虽然用了相同的文件名,但库文件中的变量定义、功能函数有所差异,同样也会导致编译出错。这时,可以借用网上开源社区的资源,Github 是一个不错的选择,无需注册,免费下载。

上传出错

1、板子型号或端口选择错误

  • 板型选择错误 - 使用的是 Arduino UNO 控制器,但是在板型选择时误选了"Arduino Yun",上传时就会出现错误
Als07.png
  • 端口选择错误 - 使用的是 Arduino UNO 控制器,但是在端口选择时,没有正确的选择 Arduino UNO 控制器的端口,上传时同样会出现错误
Als08.png
  • 正确选择端口和板型 - 在软件工具选项下的 "板"选择"Arduino UNO","端口"选择控制器的端口号,这里我的板子端口号是"com22",正确的选择后就可以成功的将程序上传了
Als09.png
  • 如何查看控制器在电脑中的端口号

我的电脑 - 右键 - 管理 - 设备管理器,可以查看控制器的端口号,如图所示:

Als10.png

2、串口被占用
使用只有一个串口(USART)的 Arduino 控制器时,串口是连接到了 USB 端口,如果上传程序时,串口处于被占用的状态下,那么程序上传就会报错,而且上传过程消耗的时间,会对比其他程序时间长。我们将占用串口的设备取下,然后重新进行上传就可以正常上传了。

Als11.png

3、Arduino 驱动没有正确的安装
如果 Arduino 驱动没有正确的安装,在设备管理器中不能看到上面图片中所示的 Arduino 端口,需要重新安装驱动才能正常使用

4、使用的软件不正确
Arduino 软件下载的地址有中文官网及英文官网,Arduino 一般需要使用 .org 网站下载的 IDE 进行程序的上传,如果在 .cc 网站下载软件就会出现上传出错的情况

其他错误

1、控制器插上电脑没有反应
解决方案:
(1)尝试更换 USB 连接线
(2)尝试更换本电脑的其他 USB 接口或者更换一台电脑重新插接试验
2、控制器在设备管理器中有端口显示,但是在软件中却没有显示该端口
解决方案:
关闭软件、拔掉控制器,再重新连接控制器,打开软件,看端口中是否出现了设备管理器中的端口号

了解更多

Erweima.png

Arduino 入门资源汇总
Arduino 入门资源汇总
点击进入更多关于 Arduino 的有趣应用以及介绍

看过本教程后,如果您还是不能解决在程序编译或者上传过程中产生的问题,请您点击此处,发帖提问,我们会及时给您做出回复。