红外遥控开发RK3568-PWM-IR

本文详细介绍了红外遥控的工作原理、红外协议(重点讲解NEC协议)、遥控器添加方法,包括记录键值、修改设备树和Android层的配置。针对RK3568平台,讲解了如何添加新的遥控器支持,包括在设备树中添加键值,并处理中断。最后提到了驱动和Android层的修改,确保红外遥控在Android系统上正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

1.红外遥控的发送接收工作原理

红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;
红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。

2.红外协议

红外遥控协议已多达十种, 如: RC5、 SIRCS、 Sy、 RECS80、Denon、NEC、Motorola、Japanese、SAMSWNG 和 Daewoo 等,用得较多的有 NEC 协议
目前 RK 平台也只支持 NEC 编码的红外协议

下图是 NEC 红外编码协议的简单示意图

这是一个完整的NEC协议图,包过用户码,按键码
*在这里插入图片描述
即先有个9ms+4.5ms的引导码,然后是地址+地址反码+命令+命令反码

这是电平表示逻辑1和逻辑0

### RK3576 红外遥控调试方法 #### 一、硬件连接确认 确保红外接收模块已按照硬件原理图正确安装到RK3576开发板上。对于PWM红外接口,在reference mode下,当按下遥控器按钮时,红外接收头会检测到来自遥控器发出的一系列高低电平变化并触发中断事件给处理器[^3]。 #### 二、内核配置调整 参照官方文档或已有案例完成Linux Kernel中有关IR子系统的设置,特别是针对Rockchip SoC特有的部分。这通常涉及修改DTS文件来描述具体的硬件资源分配情况以及使能必要的驱动程序选项[^1]。 ```bash # 修改设备树源码(.dts) &i2c_ir { status = "okay"; }; &pwm_ir { rockchip,pins = <PINCTRL_PIN(4, PINMUX_FUNC_PWM_IR)>; }; ``` #### 三、输入映射处理 为了实现物理按键与系统操作之间的关联,需创建或编辑`/dev/input/eventX`对应的keymap规则文件。这里需要注意区分不同类型的Android键值表和Linux input层的标准定义差异[^2]。 ```shell getevent -l /dev/input/event* | grep KEY_ # 查找当前可用的按键名称 setkeycodes <scancode> <keysym> ``` #### 四、应用程序层面的支持 最后一步是在应用框架里注册监听特定广播动作(如MEDIA_BUTTON),从而响应来自外部控制器的操作指令。如果目标是让媒体播放软件能够识别音量增减等功能,则还需进一步定制Activity生命周期管理逻辑。 ```java public class RemoteReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_MEDIA_BUTTON.equals(action)) { KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); int keyCode = event.getKeyCode(); switch(keyCode){ case KeyEvent.KEYCODE_VOLUME_UP: // 处理音量增加... break; case KeyEvent.KEYCODE_VOLUME_DOWN: // 处理音量降低... break; } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道起个啥名“”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值