驱动模块,加入库以后编译出错为什么?(L2930D驱动模块)
本帖最后由 血阳 于 2015-4-28 01:11 编辑附图:
我用的是L2930D驱动模块(L293D motor control shield) 附图:
然后,按照教程,安装库文件。
安装库文件到Arduino-IDE中!步骤很简单:
只要将库文件解压到Arduino安装目的的libraries目录下 。
例如:D:\ProgramFiles\arduino-0021\libraries
然后重新打开ArduinoIDE就可以使用了。
附:]L2930D驱动模块的库
然后烧录简单程序,结果就报错了。这是为啥啊?报的错有的还是库文件里面如delay什么的没定义···懵逼了。
程序代码:
#include <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的耐心指导!帮助我解决了问题!
可能你的库太旧,
没有 #inlcude <Arduino.h>
你自己在你 sketch 主程序的第一句写:
#inlcude <Arduino.h>
就是最前面变这样:
#inlcude <Arduino.h>
#include <MSMotorShield.h>
这样应该就可以了
tsaiwn 发表于 2015-4-25 12:16 static/image/common/back.gif
可能你的库太旧,
没有 #inlcude
你自己在你 sketch 主程序的第一句写:
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。 血阳 发表于 2015-4-25 13:07 static/image/common/back.gif
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。
arduino是基于JAVA,因此Arduino相关的文件路径不能放在有中文的目录下,这样他会找不到的 血阳 发表于 2015-4-25 13:07 static/image/common/back.gif
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。
因为旧的库用 #include "WProgram.h"
但是 1.0 版本之后必须 #include "Arduino.h"
如果直接在你 sketch 主程序加入 #include "Arduino.h" 还是不行
表示库的 .cpp 里面也需要 #include "Arduino.h"
那你找到库的 .h 和 .cpp
把里面 #include "WProgram.h"
都改为 #include "Arduino.h"
说明是还不适合玩IDE方式,换一个图形方式的吧。 血阳 发表于 2015-4-25 13:07 static/image/common/back.gif
这样了也不行,报错错的不是这个编译器里面的,看报错提示,是错在库文件里面,说里面好多东西都没定义。
我刚刚看了那库
https://github.com/zhaojinghua/Arduino/blob/master/MSMotorShield/MSMotorShield.cpp#L7
确实是写给 IDE 00xx 版本用的
要用在 IDE 1.0.x 之后,
必须把 MSMotorShield.cpp 的 Line 7
#include "WProgram.h"
改为
#include "Arduino.h"
这样就好了, 只要改一行 !
MSMotorShield.h 内没有要改的:)
tsaiwn 发表于 2015-4-26 01:00 static/image/common/back.gif
我刚刚看了那库
https://github.com/zhaojinghua/Arduino/blob/master/MSMotorShield/MSMotorShield.c ...
嗯嗯,还有是不是必须把arduino的软件放在英文目录下才行啊?我放在中文目录下好像也不能引用。 血阳 发表于 2015-4-26 10:26 static/image/common/back.gif
嗯嗯,还有是不是必须把arduino的软件放在英文目录下才行啊?我放在中文目录下好像也不能引用。
不必 !
前面那位林定祥大神说的不太对 :(
只要 Arduino IDE 根目录开始之后不要用中文目录即可
IDE根目录以前有中文目录是 OK 的(就是你原先的目录安排是 OK 的!)
还有, 你的 Sketch 程序码如果要放中文目录, 必须隔一层,
例如, 假设你草稿码 Sketch 是 ggyy.ino
可以放在:
大学\我的程序\ggyy\ggyy.ino
但是程序文件名不可以有中文,
例如以下是不可以:
mywork\university\gg中yy\gg中yy.ino
tsaiwn 发表于 2015-4-26 18:22 static/image/common/back.gif
不必 !
前面那位林定祥大神说的不太对
只要 Arduino IDE 根目录开始之后不要用中文目录即可
Soga~长见识了~ 血阳 发表于 2015-4-26 23:43 static/image/common/back.gif
Soga~长见识了~
那你的问题解决了没啊 ? tsaiwn 发表于 2015-4-27 00:07 static/image/common/back.gif
那你的问题解决了没啊 ?
木有,我不知道是我电脑问题还是什么,就连我引用原文件里面的库都会报错。
你能不能试试,一楼这个程序在你电脑会不会报错啊T T.库文件在原文那里我也发了的。 血阳 发表于 2015-4-27 00:29 static/image/common/back.gif
木有,我不知道是我电脑问题还是什么,就连我引用原文件里面的库都会报错。
你能不能试试,一楼这个程 ...
No error if changed to use "Arduino.h"
See Fig. below ...
tsaiwn 发表于 2015-4-27 01:06 static/image/common/back.gif
No error if changed to use "Arduino.h"
See Fig. below ...
看到没
我故意用中文目录喔 !!
只要修改 libraries\MSMotorShield\MSMotorShield.cpp
把里面 WProgram.h 改为 Arduino.h
然后就 OK 了 !
tsaiwn 发表于 2015-4-27 01:10 static/image/common/back.gif
看到没
我故意用中文目录喔 !!
只要修改 libraries\MSMotorShield\MSMotorShield.cpp
所以我的 MSMotorShield 库目录在
D:\Temp\tsaiwn\001NCTU_交大\arduino故意中文\arduino-1.0.6\libraries\MSMotorShield
页:
[1]
2