2017-09-23 34 views
0

我正在开发一个无线地使用Arduino心率脉冲的项目。我的问题是当我将RadioHead库添加到现有的通用心脏脉冲代码时;它是冲突的。将RadioHead库添加到Arduino草图

准确地说,它只与中断部分相冲突。我在网上阅读了一下,我想我有一个图书馆冲突......但是没有任何其他图书馆正在使用。

当我尝试上传草图只增加无线电头后:

#include <RH_ASK.h> 

我得到以下信息:

C:\Users\namee\AppData\Local\Temp\cc9lzNai.ltrans2.ltrans.o: In function `main': 

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined reference to `setup' 

collect2.exe: error: ld returned 1 exit status 

exit status 1 
Error compiling for board Arduino Leonardo. 

回答

0

错误的原因,如已经解释给你的sterretje你的cross post of this question to the Arduino Forum

你根本没有在草图中写入setup()函数;与图书馆冲突无关。

Arduino约定是每个草图应该有一个setup()loop()函数,即使它们留空。在调用这些函数的Arduino core library there is a main() definition中,因此在草图中未定义setup()时遇到的错误。我认为这是一种合理的方法,让编程尽可能地适合初学者,并且对于我所做的每个项目都很有用。如果由于某种原因,你错过了C++的标准main(),那么你可以在草图中定义自己的main(),它将覆盖main.cpp中的定义。不过,除非你有充分的理由,否则我会建议不要这样做。

+0

非常感谢您的回答......实际上这不是我使用的主要代码,就像是一个子开关(我的错误没有声明),但是在Arduino的形式中有一些帮助,他们发现问题是RadioHead使用定时器1和2,这就是为什么它是冲突...解决方案是通过更改RadioHead定时器为5,例如,所以它不会干扰..我没有设法编辑(RH_ASK.cpp)文件到切换定时器,但仍然在工作...如果你有任何想法请写信给我..谢谢 –

+0

定时器冲突造成的错误是完全不同于这个问题的错误,因此讨论它是关闭的话题在这里。看起来这个问题很快就会在Arduino论坛主题上得到解决。 – per1234