这篇文章主要介绍了Cubieboard自带的红外接收怎么测试的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Cubieboard自带的红外接收怎么测试文章都会有所收获,下面我们一起来看看吧。
首先,你要自己有编译sun4i-ir.ko驱动,不过好像默认编译就带了这个驱动,所以,你们用的各个版本的内核应该都已经有驱动了,不过不一定自动加载了的。自己lsmod查看一下有木有,如果木有,就去驱动目录下insmod一下(insmod /lib/modules/3.0.57+(换3.0.57+为你的内核版本)/kernel/drivers/input/keyboard/sun4i-ir.ko)
先看看驱动信息,和被加载的位置:
如果无误,那就可以直接使用了~
要强调的是:请使用家里的电视机遥控器来测试,因为我试过空调遥控器,因为频率不对,接收不到,完全没反应。
先看看红外接收设备被加载在哪个位置,它其实是被当做键盘设备来加载的,当接收到信息的时候就会产生系统事件,所以我们只要查看这个设备产生的事件就好了。嗯,是input1,经测试,该事件的系统路径应该在/dev/input/event1
现在我们直接来在命令行里查看接收到的信息被解码后的数据,因为直接查看的话,一堆二进制0101在命令行里展示出来就是乱码,所以我使用hexdump将其转换为16进制查看。
看到了吧,收到的信息就是这些,你买个遥控器,把每一个键的信息记录下来之后,就可以写程序监听这些信号,实现遥控板操控CB了,哈哈
最后解释一下我猜测的 信号解读,比如:
00003f0 0b7f 0000 312b 0007 0000 0000 0000 0000
0000400 0b7f 0000 861b 000a 0001 005b 0001 0000
0000410 0b7f 0000 8621 000a 0000 0000 0000 0000
0000420 0b80 0000 a199 0000 0001 005b 0000 0000
0000430 0b80 0000 a19e 0000 0000 0000 0000 0000
0000440 0b80 0000 d641 0005 0001 005b 0001 0000
0000450 0b80 0000 d646 0005 0000 0000 0000 0000
0000460 0b80 0000 502c 000b 0001 005b 0000 0000
0000470 0b80 0000 5031 000b 0000 0000 0000 0000
0000480 0b81 0000 6b30 000b 0001 005b 0001 0000
0000490 0b81 0000 6b36 000b 0000 0000 0000 0000
00004a0 0b82 0000 8c76 0001 0001 005b 0000 0000
00004b0 0b82 0000 8c7b 0001 0000 0000 0000 0000
00004c0 0b82 0000 6927 0009 0001 005b 0001 0000
00004d0 0b82 0000 692c 0009 0000 0000 0000 0000
00004e0 0b82 0000 d320 000e 0001 005b 0000 0000
00004f0 0b82 0000 d325 000e 0000 0000 0000 0000
0000500 0b84 0000 6dc5 0005 0001 005b 0001 0000
0000510 0b84 0000 6dcb 0005 0000 0000 0000 0000
0000520 0b84 0000 dbd7 000a 0001 005b 0000 0000
0000530 0b84 0000 dbdc 000a 0000 0000 0000 0000
这是我反复按下和放开同一个键得到的信息,首先,可以确认的是,当你按下一个键,会产生一组信号,当你的红外移出IR的接收范围或者放开按键,又会产生一组信号。
我来截取其中4组信号来分析:
00004c0 0b82 0000 6927 0009 0001 005b 0001 0000 #这两行是第1次按下时产生的
00004d0 0b82 0000 692c 0009 0000 0000 0000 0000
00004e0 0b82 0000 d320 000e 0001 005b 0000 0000 #这两行是第1次放开时产生的
00004f0 0b82 0000 d325 000e 0000 0000 0000 0000
0000500 0b84 0000 6dc5 0005 0001 005b 0001 0000 #这两行是第2次按下时产生的
0000510 0b84 0000 6dcb 0005 0000 0000 0000 0000
0000520 0b84 0000 dbd7 000a 0001 005b 0000 0000 #这两行是第2次放开时产生的
0000530 0b84 0000 dbdc 000a 0000 0000 0000 0000
首先抛开第一列(红色部分),那是hexdump打印出的解码后的信号的内存地址。
第二列,应该是每次按下和放开是相同的值,第二次按下就会+2,那我们可以理解为每一次按键产生信号的自增ID,如果多个遥控器在给他发信号,你接收信号可以不会乱,因为某次按下和放开的值始终相同。
第3列,不清楚,可能是第二列的扩展,或者是第4列的开始(前半部分)
第4、5列,看不懂了。。都是同一个键。。这些变化的数据肯定和键的值无关
每次按下同一个键的时候,不变的部分,就是后面4列了。而且我按完所有的键,每一组(两行)的第二行后4列始终是0.
那么是不是可以理解为,每一组第一行的数据后4列:
0001 005b 0001 0000 表示我遥控器上的xx键被按下
0001 005b 0000 0000 表示我遥控器上的xx被按放开
则0001 005b代表我的键的标示符,0001 0000 表示被按下 0000 0000 表示被放开
再进一步想,0x10000换成十进制就是65536 。应该没有人会用65536 表示按下 然后 0表示放开吧?
所以后面4个0应该也不用管,可能有其他用途把,那么0001就应该表示被按下, 0000表示放开。
关于“Cubieboard自带的红外接收怎么测试”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Cubieboard自带的红外接收怎么测试”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。