Arduino ide解决遇到的问题 error: ‘TKD2‘ was not declared

 

解决Arduino ide  遇到的问题 error: 'TKD2' was not declared in this scope
今天开始学习arduino接红外接收器来接受遥控器发送的指令。控制一些外围设备。
使用简单的例子
//
///arduino接红外接收器来接受遥控器发送的指令
//这段代码来自IRremote库中examples中的 IRrecvDemo
#include        //调用IRremote.h库
int RECV_PIN = 11;           //定义RECV_PIN变量为11
IRrecv irrecv(RECV_PIN);      //设置RECV_PIN(也就是11引脚)为红外接收端
decode_results results;       //定义results变量为红外结果存放位置
 
void setup(){
    Serial.begin(9600);        //串口波特率设为9600
    irrecv.enableIRIn();       //启动红外解码
}
 
void loop() {
    //是否接收到解码数据,把接收到的数据存储在变量results中
     if (irrecv.decode(&results)) {  
          //接收到的数据以16进制的方式在串口输出
          Serial.println(results.value, HEX); 
          irrecv.resume();  // 继续等待接收下一组信号
     }
}
//
编译发现遇到了个问题。首先一个错误是 
D:\Tools\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: ‘TKD2’ was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
exit status 1 
为开发板 Arduino/Genuino Uno 编译时出错。
 
提示我。TKD2没找到。 
然后还一个问题说是找到两个IRremote的库。使用了其中一个库。 那个我们可以吧他给的路径的不是arduino ide安装目录的那个库删掉。使用arduino ide里的library提供的IRemote库来写 然而还是有这个错误。
 
看似是arduino ide提供的library里的一个cpp有错误。于是乎。用Notepad++打开看看。
打开错误提示的这个cpp文件。 
D:\Tools\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp
 
#include "IRremote.h"
#include "IRremoteTools.h"
#include
 
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
IRrecv irrecv(RECV_PIN); // an instance of the IR receiver object
decode_results results; // container for received IR codes
 
void beginIRremote(){
    irrecv.enableIRIn(); // Start the receiver
}
 
bool IRrecived(){
    return irrecv.decode(&results);
}
 
void resumeIRremote(){
    irrecv.resume(); // resume receiver
}
 
unsigned long getIRresult(){
    return results.value;
}
 
我们发现他有个 TKD2 这个东西。但是没有找到具体的声明或者define 然后我们找他的h头文件。
也没有 TKD2 的声明
 
#include "IRremote.h"
#include "IRremoteTools.h"
这两个都找了。就是没有 TKD2 这个东西。 至于
这个就不用去找了。因为这是arduino的环境带的东西。外部的library肯定不会有某个变量或者define放到这里面去。 
所以 是 这个arduinio ide官方提供的这个库代码有问题????
我到官方找了反馈问题的地方。先在里面搜索了一下。有人说 1.6.7里面就有这个问题了。 
然而。他们用的 要么是不知所以然的东西。要么不是用官方教程写的代码。然后一些留言回复之类的也看的不知所云。
我自己想办法修改吧。 
第一种: 哪里报错修改哪里
修改报错文件的这个cpp 
D:\Tools\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp 
修改成如下:
 
##include "IRremote.h"
#include "IRremoteTools.h"
#include 
 
//int RECV_PIN = TKD2; // the pin the IR receiver is connected to
int my_RECV_PIN = 10;
IRrecv  my_irrecv(my_RECV_PIN); // an instance of the IR receiver object
decode_results  my_results; // container for received IR codes
 
void beginIRremote(){
my_irrecv.enableIRIn(); // Start the receiver
}
 
bool IRrecived(){
return  my_irrecv.decode(&my_results);
}
 
void resumeIRremote(){
     my_irrecv.resume(); // resume receiver
}
 
unsigned long getIRresult(){
return  my_results.value;
}
 
当然。这样要是用的时候需要修改端口的。但问题是解决了,可以测试试验了。编译成功显示
///
项目使用了 3,448 字节,占用了 (10%) 程序存储空间。最大为 32,256 字节。
全局变量使用了406字节,(19%)的动态内存,余留1,642字节局部变量。最大为2,048字节。
第二种方法。最简单了。看完IRremote.h 发现根本没有引用出错的那两个文件。
IRremoteTools.h 和 IRremoteTools.cpp ,直接删除得了。  
 
项目使用了 3,444 字节,占用了 (10%) 程序存储空间。最大为 32,256 字节。
全局变量使用了406字节,(19%)的动态内存,余留1,642字节局部变量。最大为2,048字节。
 
OK 改好了。
Arduino <wbr>ide解决遇到的问题 <wbr>error: <wbr>'TKD2' <wbr>was <wbr>not <wbr>declared

Arduino <wbr>ide解决遇到的问题 <wbr>error: <wbr>'TKD2' <wbr>was <wbr>not <wbr>declared
发现个问题,按下遥控键不放,一直是FFFFFFFF ,为什么,如何改进呢!?
自己看来还得解决了个问题了。
 
分享:
 
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值