红外按键
Overview
以 AC638N 为例,红外遥控器发送红外信号,利用过滤模块及timer,检测红外接收头的波形,识别收到的红外信号的编码。提供识别红外信号编码的应用示例、工程配置、API 介绍和常见问题。
应用示例
识别红外信号编码的具体源代码详见 sdk/bsp/AC638N/src/irflt.c
irflt.c
中参考示例如下:/*************************** 以下是SDK参考示例 ****************************/ // *INDENT-OFF* IRFLT_PLATFORM_DATA_BEGIN(test_irflt_pdata) .ir_io = IO_PORTC_02, //红外信号捕获引脚 .timer_num = 5, //选用timer5 IRFLT_PLATFORM_DATA_END() void irflt_test(void) { log_info("***************** irflt test ***************"); irflt_init((void *)&test_irflt_pdata); u8 ir_val = 0; extern void wdt_clr(); while (1) { wdt_clr(); ir_val = get_irflt_value(); if (ir_val != 0xff) { log_info("ir_val = %d", ir_val); } delay(100000); } }
工程配置
在 sdk/apps/main.c 中函数
user_main()
添加如下工程代码:int user_main() { extern void irflt_test(void); irflt_test(); }
编译下载后,PC2 上连接红外接收头,按下红外遥控器上的按键,观察打印的红外按键健值。
API参考
识别红外信号编码常用相关 API 介绍,具体软件代码见 sdk/bsp/AC638N/src/irflt.c
Functions
-
u8 get_irflt_value(void)
获取timer输入捕捉红外解码的数值
- Returns:
解码后的值
-
u8 ir_io_suspend(void)
IO复用时,IO挂起函数
- Returns:
0:挂起成功, 1:挂起是吧
-
u8 ir_io_resume(void)
IO复用时,IO恢复函数
- Returns:
0:恢复成功
-
void irflt_init(void *pdata)
红外初始化函数
- Parameters:
pdata – 初始化的参数结构体地址 : struct irflt_platform_data *
-
void irflt_test(void)
红外参考示例函数