小白一枚,求各位大神指点,编译有误

2017-06-171.4万
AI 快速预览详细 收起
本文讨论了在使用Arduino的tone函数和IRremote库时遇到的编译错误。具体来说,当尝试通过红外遥控器控制蜂鸣器时,加入tone函数会导致编译失败。错误信息显示存在多重定义的问题。为了解决这个问题,可以通过修改IRremote库文件中的中断向量名称来避免冲突。这样,用户可以顺利地使用tone函数和IRremote库,实现红外遥控器对蜂鸣器的控制。
#include <IRremote.h>
int RECV_PIN = 11;              
int ledPin = 10;                // LED – digital 10
boolean ledState = LOW;         // ledstate用来存储LED的状态
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
     Serial.begin(9600);
     irrecv.enableIRIn();
     pinMode(ledPin,OUTPUT);       // 设置LED为输出状态
     pinMode(9,OUTPUT);
}

void loop() {
      if (irrecv.decode(&results)) {     
              Serial.println(results.value, HEX);

              //一旦接收到电源键的代码, LED翻转状态,HIGH变LOW,或者LOW变HIGH
         if(results.value == 0xFF6897){
                 ledState = !ledState;             //取反      
                 digitalWrite(ledPin,ledState);    //改变LED相应状态
                 tone(9,1000);      
            }     
            irrecv.resume();
        }
}


想利用红外遥控器指挥蜂鸣器工作,原来的红外接收模块是好使的,但是在加入tone函数之后,编译就通不过,错误信息如下:
C:\temp\build415033132321862447.tmp/core.a(Tone.cpp.o): In function `__vector_7':
D:\Arduino-1.6.5-r2\hardware\arduino\avr\cores\arduino/Tone.cpp:538: multiple definition of `__vector_7'
IRremote\IRremote.cpp.o:D:\arduino-1.6.5-r2\libraries\IRremote/IRremote.cpp:312: first defined here
collect2.exe: error: ld returned 1 exit status
Multiple libraries were found for "IRremote.h"
Used: D:\arduino-1.6.5-r2\libraries\IRremote
Not used: D:\arduino-1.6.5-r2\libraries\RobotIRremote
编译有误


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
20060606
20060606
tone与IRremote冲突了
hnyzcj
hnyzcj
我用1.06调试是正常的

白先森
白先森
作者
回复hnyzcj
对,我用的1.6.5,好像是tone的库与IRremote的库,某个中断引脚冲突了,这个应该怎么去解决,对于库,我们可以进行修改吗?
hnyzcj
hnyzcj
库的原因吧,我看到你用的1.65
白先森
白先森
作者
求各位大神指点!!!!
- 没有更多了 -