红外按键
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)
- 红外参考示例函数