Topic

FAQ
Login Register
TLSR8258Mesh工程增加驱动库中红外学习时进入红外中断超时,
Sep 06, 2022 11:48

/

A

/A

您好,我在自己的项目中需要给蓝牙Mesh网络中的灯节点增加红外解码功能,上次发帖后收到回复说可以通过修改DriverSDK中的红外部分实现,所以我修改了用于红外学习的rc_ir_learn.c中的函数,注释掉了发送部分的函数,只留下通过中断进行红外记录的部分,并且没有修改ir_learn_irq_handler(void)函数。

如下图,修改代码后我按照ble手册中的说明在mesh工程中main.c文件里的irq_handler函数中加入了ir_learn_irq_handler(void)函数:


在main函数中加入了ir_learn_init(void)

在app.c文件中的proc_ui()函数中加入了ir_learn_start(void)、ir_learn_detect(void)和get_ir_learn_state(void)函数进行红外波形的记录和状态判断:

进行测试时,发现在收到红外信号后get_ir_learn_state()返回的状态一直是IR_LEARN_FAIL_WAIT_OVER_TIME,因此我在红外中断函数中定义了变量并在pro_ui()中通过串口输出该变量:

正常情况下收到红外信号后应该会快速进入多次中断,结果发现红外中断不能正常跟随红外信号的下降沿进入,两次进入中断的时间间隔很长所以进入了超时状态。请问我的代码是有哪里写错了吗,因该如何解决这个问题?

TL_Soyo Sep 06, 2022 13:48
0
/A

Hi,

  8258芯片没有红外学习电路,8278才能学习。

5 replies
TL_Soyo Sep 06, 2022 13:48
0
/A

Hi,

  8258芯片没有红外学习电路,8278才能学习。

TL_Soyo Sep 06, 2022 14:19
0
/A


支持的,发送可以使用DMA fifo模式减少代码量,解码需要自己根据GPIO的电平来读取数据


TL_Soyo Sep 06, 2022 15:57
0
/A

是的,不支持