6255| 1
|
[常见问题] 红外相关 程序 编译失败 解决方法教程(二) |
本帖最后由 Cain 于 2015-6-9 19:16 编辑 上回说到......额,上次告诉大家如何解决因库文件更新导致编译失败的问题,这次在和大家说一个特例。(一般都是红外模块配合其他模块使用时) 有时,一个红外程序明明在uno(或别的)板型下可以编译通过正常使用,怎么在Leonardo下就不行了呢? 这一切都要人和宇宙的关系开始说起。。。额,其实是因为红外模块在使用时用到了一个叫定时器的东西来检测信号的内容。但有时两个模块使用定时器冲突了。。。定时器这玩意儿可厉害了!但我们这里不详述,就给出解决办法。 修改库文件! 别以为很难。写一个库可能难,但”修改“其实很容易。 首先打开红外库文件,一般红外库定义的对应定时器的内容都在IRremoteInt文件内, (如果是使用EDUArdublock,可能是在IRremote00Int.h内,可以看下报错哦,会有提示的) 打开后你会发觉,啊,原来作者已料到了一切 所有备用的定时器都已经预先现在了上面,你要做的只是换一个定义引脚,像这样 ,然后保存,然后就没有然后了。 (EDUardublock内的红外库定义是不全,需要自己在库文件内在加上一句 ,之前我也不知道,还是在编译错误后根据报错找到的问题) 再次编译你就会发觉一切是那么美好。(记得先重启IDE哦) 其实深究下去你会发觉,这个定时器的引脚是专门给红外发送模块用的,修改定时器也必须更改红外发送管的引脚。所以如果你只是需要接受模块,你根本做了件无用功。为啥?因为你修改的内容你根本用不到。。。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed