RK 平台上红外实现原理简介:
PWM 有三种工作模式, reference mode, one-shot modecontinuousmode. 红外遥控器就采用 reference mode,这种模式下 PWM 可以捕获输入高低电平的宽度,并产生中断,CPU接收到中断后去相应的寄存器读取。按下遥控的时候,红外接收头会产生一系列的高低电平,PWM 就会产生相应的中断,CPU 读取相应的寄存器就知道这些高低电平的时间,根据协议就可以解码出红外的用户码和键值码出来。

在PX30的DTS文件上添加:

&pwm3 {status = "okay";compatible = "rockchip,remotectl-pwm";pinctrl-names = "default";pinctrl-0 = <&pwm3_pin>;remote_pwm_id = <3>;handle_cpu_id = <1>;remote_support_psci = <1>;interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;ir_key1{rockchip,usercode = <0x7f80>;rockchip,key_table = <0xed    KEY_POWER>,//KEY_BRIGHTNESSUP<0xe1    KEY_MUTE>,<0xf3   KEY_VOLUMEDOWN>,<0xf1 KEY_VOLUMEUP>,<0xfd   KEY_HOME>,<0xfe   KEY_BACK>,<0xe0   KEY_UP>,<0xf5 KEY_DOWN>,<0xf8   KEY_LEFT>,<0xf6   KEY_RIGHT>,<0xf7  KEY_ENTER>,<0xf5  KEY_ENTER>;};ir_key2{rockchip,usercode = <0xfe01>;rockchip,key_table = <0xbd  KEY_POWER>,//KEY_BRIGHTNESSUP<0xbf    KEY_MUTE>,<0xa5   KEY_VOLUMEDOWN>,<0xa7 KEY_VOLUMEUP>;};
};

虽然添加了遥控功能,但是没有实现打印按键值信息的:

(会更新处理!!..)

**2020年1月7日更新**

打印红外按键值有以下两种方式,内核打印可以用串口,也可以在adb中使用指令

第一种方法:

在下面的路径下打开rockchip_pwm_remotectl.c

px30_android8.1\kernel\drivers\input\remotectl

在红外接收的源码(rockchip_pwm_remotectl.c)中,给下面变量赋值,编译下载,就可以查看打印用户码和键值

/*sys/module/rk_pwm_remotectl/parameters,
modify code_print to change the value*/
static int rk_remote_print_code=1;

第二种方法:
通过指令打开红外接收的打印功能,然后按遥控器按键,就可以在内核打印中看到用户码和键值

rk3326_m2g:/ # echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print

以下是红外遥控器的按键值:

[  330.647056] USERCODE=0x7f80
[  330.674546] RMC_GETDATA=e1
[  331.524589] USERCODE=0x7f80
[  331.551813] RMC_GETDATA=fb
[  332.180352] USERCODE=0x7f80
[  332.207677] RMC_GETDATA=fa
[  332.913232] USERCODE=0x7f80
[  332.940686] RMC_GETDATA=f9
[  333.825542] USERCODE=0x7f80
[  333.852894] RMC_GETDATA=f8
[  334.372618] USERCODE=0x7f80
[  334.399968] RMC_GETDATA=e0
[  335.033591] USERCODE=0x7f80
[  335.060920] RMC_GETDATA=f6
[  335.547097] USERCODE=0x7f80
[  335.574352] RMC_GETDATA=f7
[  336.186789] USERCODE=0x7f80
[  336.214219] RMC_GETDATA=f5
[  336.858661] USERCODE=0x7f80
[  336.886013] RMC_GETDATA=fd
[  337.430376] USERCODE=0x7f80
[  337.457540] RMC_GETDATA=fc
[  338.020364] USERCODE=0x7f80
[  338.047850] RMC_GETDATA=f1
[  338.622925] USERCODE=0x7f80
[  338.650135] RMC_GETDATA=f3
[  340.846403] USERCODE=0x7f80
[  340.873878] RMC_GETDATA=fe

注:该遥控器的 usercode0x7f80,键值是RMC_GETDATA= xxxx(如:RMC_GETDATA=fe,fe是遥控器的按键值)
更新:20221012
如何查看红外用的是那个kl文件

dumpsys  input


对应pwm3,那就是正确的了

PX30 Android8.1 红外遥控实现相关推荐

  1. 遥控窗帘c语言程序,使用AT89C2051的红外遥控窗帘

    本文介绍一款使用微电脑管理的.红外遥控器控制的多功能窗帘控制器.该窗帘控制器采用89C2051单片机的最小系统设计,控制一个220V的可逆.变速电动机控制窗帘的拉开和关闭.窗帘控制器可以使用红外遥控器 ...

  2. arduino红外遥控库IRremote的IRsend类sendRaw函数溢出问题及其解决方法

    arduino红外遥控库IRremote的IRsend类sendRaw函数溢出问题及其解决方法 参考文章: (1)arduino红外遥控库IRremote的IRsend类sendRaw函数溢出问题及其 ...

  3. 步进电机红外遥控C语言程序,单片机红外遥控+步进电机+1602液晶显示c语言源程序...

    这是我做的红外遥控控制的1602显示转速和转向的步进电机c语言原程序,已经调试成功!有些模块是以前做其他实验时做的,现在是直接调用的,包括1602液晶显示技术,TC9012红外解码,然后就是四相步进电 ...

  4. Ardino基础教程 20_红外遥控

    实验二十:红外遥控 库文件下载链接:ArduinoCode20-红外遥控库代码.zip 注意:把 IRremote 文件夹放到 编译器安装目录下的\Arduino\libraries里.不然编译不过. ...

  5. C语言遥控器程序,红外遥控

    红外遥控器的发送装置和接收装置以及关于载波等一些原理大家可参看<手把手教你学51单片机>文档第16章知识内容,这里笔者只简单说明如何运用该模块并讲解代码的实现. 1.接收装置 HS0038 ...

  6. 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  7. Arduino--1838红外遥控

    (1)简介 如图中所示,常用的红外遥控器,功率较小,容易出现误码率,一般传输距离几米至十几米,没有障碍物情况下 (2)接线 UNO 1838红外传感器 5V VCC GND GND 2 Signal ...

  8. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外遥控实验

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...

  9. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  10. 红外线遥控c语言程序,红外遥控的C程序

    红外遥控在生产和生活中应用越来越广泛,不同的红外遥控芯片有不同的发码协议,但一般都是由引导码,系统码,键码三部分组成. 引导码是告诉接收机准备接收红外遥控码.系统码是识别码,不同的遥控芯片有不同的误别 ...

最新文章

  1. 北风设计模式课程---7、建造者模式
  2. 使用Unity引擎打造赛博朋克之城!CIGA Game Jam 2019 48小时独立游戏开发挑战
  3. C++ STL string 简单使用
  4. java filterinputstream_java.io.FilterInputStream.close()
  5. Mysql for linux 安装
  6. js 正则 或者_如何彻底搞懂面向 Web 开发者的正则表达式?
  7. 【UI/UX】桌面GUI设计
  8. 迟思堂工作室编程规范:单片机C语言
  9. 谷歌提出新型自动语音识别数据增强大法,直接对频谱图“动刀”,提升模型表现...
  10. MySQL基础day05_MySQL数据库的备份与恢复-1-MySQL 5.6
  11. C#连接Oracle数据库
  12. 幼儿计算机教材有哪些,中华字经幼儿教材
  13. python用tkinter做简易计算器_基于python tkinter的简单计算器(v1.0)
  14. HTML5 progress进度条详解
  15. linux 两块硬盘合并成一块
  16. 高性能、分布式、低延迟的发布订阅中间件对比 Redis 和 emitter
  17. 人工智能让你更美 来自美图影像实验室发布会实录
  18. 南京大学文博专业考研上岸经验分享
  19. 树与二叉树——有关n叉树的若干问题
  20. JavaScript 介绍

热门文章

  1. libnids中TCP/IP栈实现细节分析——TCP会话重组
  2. 【不忘初心】Win10_2004.19041.329_X64_七合一_[纯净精简版](2020.06.18)
  3. WEB安全(十六)单点登录的基本实现
  4. 微信 Emoji表情代码大全
  5. #1778. [Usaco2010 Hol]Dotp 驱逐猪猡(高斯消元)
  6. dedecms{dede:sql}{dede:php}标签的用法
  7. 服务器vga接显示器无信号,显示器用HDMI转VGA接口后,无信号怎么解决
  8. 个人投资——基本原则
  9. 深度学习在文本分类中的应用
  10. 同侪隐修录 (2016-12-25 23:10:21)转载▼