常见问题及解决方案
1.驱动无法正常安装
如果使用的是精简版的Windows系统,那么在安装Arduino驱动时,可能会遇到“系统找不到指定的文件”的问题,如图A-5所示。
出现以上问题的原因是精简版的Window系统删掉了一些不常用的驱动信息。解决的方法如下。
(1)打开C:\windows\ inf\setupapi. dev. log文件
该文件包含了有关即插即用设备和驱动程序安装的信息,当然也记录了Arduino驱动安装失败的原因。
打开该文件,滚动到文件末尾附近,则可以看到如图A-6所示的信息。
正是这个文件的缺失,致使Arduino驱动无法安装。
(2)在C:\ Windows\System32\DriverStore\ FileRepository\路径下新建一个名为mdmepq. inf_x86_neutralxxxxxxx文件夹
每台计算机后面的标示不一样,文件夹中的xxxxxxx具体是什么请参照图A-6中setupapi. dev. log文件给出的提示信息。例如,笔者计算机中给出的信息为C:\Windows\ System32\ DriverStore \ FileRepository \mdmcpq. inf_x86_neutral _9f203c20b6fodabd,根据该提示,在C:\ Windows\System32\DriverStore\FileRepository\路径下建立了一个同名的文件夹,如图A-7所示。
(3)下载文件
从网址http://x.openjumper.com/mdmcpq将如图A-8所示的文件下载到刚才新建的mdmcpq. inf-x86_neutralxxxxxxxx件夹中。
(4)重新按步骤安装驱动
现在驱动就可以正常安装了,安装方法参照第1章的内容。
2.下载程序时提示avrdude: stk500 getsync(): not in sync: resp=0x00
这是由串口通信失败引起的错误提示。原因可能如下。
(1)选错了串口或者板子型号
解决办法: 在“工具”菜单中正确选择对应的控制器型号及串口号。
(2) Arduino在IDE下载过程中没有复位
在串口芯片DTR的输出脚与单片机的Reset脚之间有一个100 nF的电容。IDE在向Arduino传输程序之前,会通过DTR引脚发出一个复位信号,使单片机复位,从而使单片机进入bootloader区运行下载所需的程序。如果这个过程出错,也会出现stk500 getsync() : not in sync: resp=0x00错误。
解决办法: 当程序编译完成后提示进行下载时,手动按一下复位键,使Arduino运行bootloader程序。
(3)串口脚(0,1)被占用
Arduino下载程序时会使用0、1两个引脚,如果这两个引脚接有外部设备,则可能会导致通信不正常。
解决办法: 拔掉0、1脚上连接的设备,再尝试下载。
(4) USB转串口通信不稳定
该问题主要存在于一些劣质的Arduino兼容板及劣质的Arduino控制器上,通常由转串口芯片的质量问题引起,也可能是USB连接线的问题。
解决办法: 更换控制板,或者更换USB连接线。
(5) bootloader损坏或AVR单片机损坏
该问题出现的可能性极小,如果以上几种解决方法均尝试无果,则可能是bootloader程序损坏,或者AVR单片机损坏。
解决办法: 使用烧写器,给AVR芯片重新写入bootloader,如果无法写人,或写人后仍然不正常,则请更换AVR芯片再尝试
3.使用第三方类库时编译出错,提示WProgram. h: No such fileor directory:
这是因为程序中调用的库与最新版的Arduino IDE不兼容。可以尝试在库中的.h和. cpp文件中,用如下代码替换原来的“# include “WProgram. h”,使之能够兼容最新版的Arduino IDE.
#if ARDUINO>=100
#include "Arduino. h"
#else
#include "WProgram.h"
#endif
如果仍然无法编译通过,或运行不正常,请下载支持Arduino最新IDE的库版本。
4.能否使用AVRGCC的方法在Arduino IDE中开发Arduino
可以。 但是需要注意IDE自带的GCC版本为4.3.2 ,AVR-LibC的版本为1.6.4,不同版本之间可能有少许差异。
5.Arduino是否支持其他型号的芯片
Arduino官方支持的芯片型号有限,除了Atmel SAM3X8E之外,均为AVR芯片。对于官方不支持的AVR型号,可以寻找第三方支持库来使用
对于STM32部分型号,可以使用Maple来开发,网址为http://www.leaflabs.com/
对于MSP430部分型号,可以使用Energia来开发,网址为http://www. energia.nu/.
对于PIC32部分型号,可以使用chipKIT来开发,网址为http://www.chipkit.net/
6.Arduino开源使用的协议是什么
Arduino硬件使用Creative Commons发布,IDE使用GPL发布, Arduino库文件使用LGPL发布。
7.能否使用AVR-Libc和汇编等开发Arduino
可以,Arduino IDE支持这样的开发,如果要使用其他AVR开发工具来开发Arduino也是可以的。
以上来源于《ARDUINO程序设计基础》277~281页