红外相关 程序 编译失败 解决方法教程(二)

2015-06-099174
AI 快速预览详细 收起
本文介绍了如何解决在Leonardo板上运行红外程序时遇到的编译失败问题。主要原因是定时器冲突,通过修改库文件中的定时器引脚定义可以轻松解决。首先打开红外库文件(如IRremoteInt或IRremote00Int.h),根据报错提示找到对应的定时器引脚定义,然后修改引脚定义并保存。最后重启IDE,重新编译程序即可解决问题。


上回说到......额,上次告诉大家如何解决因库文件更新导致编译失败的问题,这次在和大家说一个特例。(一般都是红外模块配合其他模块使用时)
有时,一个红外程序明明在uno(或别的)板型下可以编译通过正常使用,怎么在Leonardo下就不行了呢?
这一切都要人和宇宙的关系开始说起。。。额,其实是因为红外模块在使用时用到了一个叫定时器的东西来检测信号的内容。但有时两个模块使用定时器冲突了。。。定时器这玩意儿可厉害了!但我们这里不详述,就给出解决办法。
修改库文件!
别以为很难。写一个库可能难,但”修改“其实很容易。

首先打开红外库文件,一般红外库定义的对应定时器的内容都在IRremoteInt文件内,
(如果是使用EDUArdublock,可能是在IRremote00Int.h内,可以看下报错哦,会有提示的)



打开后你会发觉,啊,原来作者已料到了一切

红外相关 程序 编译失败 解决方法教程(二)图1
所有备用的定时器都已经预先现在了上面,你要做的只是换一个定义引脚,像这样红外相关 程序 编译失败 解决方法教程(二)图2  
,然后保存,然后就没有然后了。



(EDUardublock内的红外库定义是不全,需要自己在库文件内在加上一句红外相关 程序 编译失败 解决方法教程(二)图3  
之前我也不知道,还是在编译错误后根据报错找到的问题)


再次编译你就会发觉一切是那么美好。(记得先重启IDE哦)


其实深究下去你会发觉,这个定时器的引脚是专门给红外发送模块用的,修改定时器也必须更改红外发送管的引脚所以如果你只是需要接受模块,你根本做了件无用功。为啥?因为你修改的内容你根本用不到。。。


















创作许可协议

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

评论(1)
丄帝De咗臂
丄帝De咗臂
EDUardublock在Leonardo上用红外有问题。。。我之前还真不知道,哈哈,多谢楼主分享
- 没有更多了 -