极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 33020|回复: 25

驱动模块,加入库以后编译出错为什么?(L2930D驱动模块)

[复制链接]
发表于 2015-4-25 11:56:00 | 显示全部楼层 |阅读模式
本帖最后由 血阳 于 2015-4-28 01:11 编辑

附图:



我用的是L2930D驱动模块(L293D motor control shield) 附图:
然后,按照教程,安装库文件。
安装库文件到Arduino-IDE中!步骤很简单:
只要将库文件解压到Arduino安装目的的libraries目录下 。
例如:D:\ProgramFiles\arduino-0021\libraries
然后重新打开ArduinoIDE就可以使用了。

附:[/size]L2930D驱动模块的库

然后烧录简单程序,结果就报错了。这是为啥啊?报的错有的还是库文件里面如delay什么的没定义···懵逼了。

程序代码:
#include&#160;<MSMotorShield.h>


MS_DCMotor motor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm

void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Motor test!");

motor.setSpeed(200); // set the speed to 200/255
}

void loop() {
Serial.print("tick");

motor.run(FORWARD); // turn it on going forward
delay(1000);

Serial.print("tock");
motor.run(BACKWARD); // the other way
delay(1000);

Serial.print("tack");
motor.run(RELEASE); // stopped
delay(1000);
}


然后报错的截图:



极度感谢@tsaiwn的耐心指导!帮助我解决了问题!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-4-25 12:16:23 | 显示全部楼层


可能你的库太旧,
没有 #inlcude <Arduino.h>
你自己在你 sketch 主程序的第一句写:
#inlcude <Arduino.h>
就是最前面变这样:

#inlcude <Arduino.h>
#include <MSMotorShield.h>

这样应该就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-25 13:07:11 | 显示全部楼层
tsaiwn 发表于 2015-4-25 12:16
可能你的库太旧,
没有 #inlcude
你自己在你 sketch 主程序的第一句写:

这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。
回复 支持 反对

使用道具 举报

发表于 2015-4-25 18:13:55 | 显示全部楼层
血阳 发表于 2015-4-25 13:07
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。

arduino是基于JAVA,因此Arduino相关的文件路径不能放在有中文的目录下,这样他会找不到的
回复 支持 反对

使用道具 举报

发表于 2015-4-25 19:08:31 | 显示全部楼层
血阳 发表于 2015-4-25 13:07
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。



因为旧的库用 #include "WProgram.h"

但是 1.0 版本之后必须 #include "Arduino.h"
如果直接在你 sketch 主程序加入 #include "Arduino.h" 还是不行
表示库的 .cpp 里面也需要 #include "Arduino.h"

那你找到库的 .h 和 .cpp
把里面 #include "WProgram.h"
都改为 #include "Arduino.h"
回复 支持 反对

使用道具 举报

发表于 2015-4-25 19:39:56 | 显示全部楼层
说明是还不适合玩IDE方式,换一个图形方式的吧。
回复 支持 反对

使用道具 举报

发表于 2015-4-26 01:00:54 | 显示全部楼层
血阳 发表于 2015-4-25 13:07
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。

我刚刚看了那库
  https://github.com/zhaojinghua/A ... SMotorShield.cpp#L7
确实是写给 IDE 00xx 版本用的
要用在 IDE 1.0.x 之后,
必须把 MSMotorShield.cpp 的 Line 7
  #include "WProgram.h"
改为
  #include "Arduino.h"

这样就好了, 只要改一行 !
  MSMotorShield.h 内没有要改的  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-26 10:26:05 | 显示全部楼层
tsaiwn 发表于 2015-4-26 01:00
我刚刚看了那库
  https://github.com/zhaojinghua/Arduino/blob/master/MSMotorShield/MSMotorShield.c ...

嗯嗯,还有是不是必须把arduino的软件放在英文目录下才行啊?我放在中文目录下好像也不能引用。
回复 支持 反对

使用道具 举报

发表于 2015-4-26 18:22:50 | 显示全部楼层
血阳 发表于 2015-4-26 10:26
嗯嗯,还有是不是必须把arduino的软件放在英文目录下才行啊?我放在中文目录下好像也不能引用。

不必 !
前面那位林定祥大神说的不太对
只要 Arduino IDE 根目录开始之后不要用中文目录即可
IDE根目录以前有中文目录是 OK 的(就是你原先的目录安排是 OK 的!)
还有, 你的 Sketch 程序码如果要放中文目录, 必须隔一层,
例如, 假设你草稿码 Sketch 是 ggyy.ino
可以放在:
   大学\我的程序\ggyy\ggyy.ino
但是程序文件名不可以有中文,
例如以下是不可以:
   mywork\university\gg中yy\gg中yy.ino
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-26 23:43:35 | 显示全部楼层
tsaiwn 发表于 2015-4-26 18:22
不必 !
前面那位林定祥大神说的不太对
只要 Arduino IDE 根目录开始之后不要用中文目录即可

Soga~长见识了~
回复 支持 反对

使用道具 举报

发表于 2015-4-27 00:07:11 | 显示全部楼层
血阳 发表于 2015-4-26 23:43
Soga~长见识了~

那你的问题解决了没啊 ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-27 00:29:55 | 显示全部楼层
tsaiwn 发表于 2015-4-27 00:07
那你的问题解决了没啊 ?


木有,我不知道是我电脑问题还是什么,就连我引用原文件里面的库都会报错。
你能不能试试,一楼这个程序在你电脑会不会报错啊T T.库文件在原文那里我也发了的。
回复 支持 反对

使用道具 举报

发表于 2015-4-27 01:06:21 | 显示全部楼层
血阳 发表于 2015-4-27 00:29
木有,我不知道是我电脑问题还是什么,就连我引用原文件里面的库都会报错。
你能不能试试,一楼这个程 ...


No error if changed to use "Arduino.h"

See Fig. below ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-4-27 01:10:09 | 显示全部楼层
tsaiwn 发表于 2015-4-27 01:06
No error if changed to use "Arduino.h"

See Fig. below ...


看到没
我故意用中文目录喔 !!
只要修改 libraries\MSMotorShield\MSMotorShield.cpp
把里面 WProgram.h 改为 Arduino.h
然后就 OK 了 !
回复 支持 反对

使用道具 举报

发表于 2015-4-27 01:13:23 | 显示全部楼层
tsaiwn 发表于 2015-4-27 01:10
看到没
我故意用中文目录喔 !!
只要修改 libraries\MSMotorShield\MSMotorShield.cpp




所以我的 MSMotorShield 库目录在

D:\Temp\tsaiwn\001NCTU_交大\arduino故意中文\arduino-1.0.6\libraries\MSMotorShield
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 06:44 , Processed in 0.047614 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表