我正在研究一个项目,以无线使用Arduino心率脉冲。我的问题是,当我将Radiohead库添加到现有的通用心脏脉冲代码中时;这是矛盾的。
确切地说,它仅与中断部分相抵触。我在互联网上阅读了一些,我想我有图书馆冲突...但是没有其他图书馆。
当我仅在添加Radiohead之后尝试上传草图时:
#include <RH_ASK.h>
我收到以下消息:
C:UsersnameeAppDataLocalTempcc9lzNai.ltrans2.ltrans.o: In function `main':
C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:43: undefined reference to `setup'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Leonardo.
错误的原因,正如您在此问题的交叉帖子中向您解释的那样,
您根本没有在草图中编写setup()函数;与图书馆冲突无关。
Arduino的约定是每个草图都应具有setup()
和loop()
功能,即使它们是空的。在Arduino Core库中,有一个main()
定义称为这些功能,因此当您在草图中未定义setup()
时遇到的错误。我发现这是使编程尽可能友好的合理方法,对于我完成的每个项目都很有用。如果由于某种原因您错过了C 的标准main()
,则可以在草图中定义自己的main()
,它将在Main.cpp中覆盖定义。但是,除非您有充分的理由,否则我建议不要这样做。