打印
[开发工具]

新定义MCU开发板测评 + 易码魔盒体验之红外遥控解码

[复制链接]
678|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一直忙于工作没时间做评测,看到易码魔盒里面有红外解码配置。刚好工作用到红外解码功能,且手上有配件。
那就先从这里开始吧,硬件比较简单,看图:



在魔盒中配置:

然后生成keil工程,之后修改main函数、编译:
void main(void)
{        
    /*** MCU init***/
    SC_Init();
    /*<Generated by EasyCodeCube begin>*/
    /*<UserCodeStart>*//*<SinOne-Tag><1>*/
    SCD_IR_Decode_Init();
    /*<UserCodeEnd>*//*<SinOne-Tag><1>*/
    /*<UserCodeStart>*//*<SinOne-Tag><3>*/
    SCD_Time0Control_Cmd( 1 );
    /*<UserCodeEnd>*//*<SinOne-Tag><3>*/
    /*<UserCodeStart>*//*<SinOne-Tag><4>*/
    #define NEC_DATA_SET    0x12
    #define NEC_DATA_UP     0x1B
    #define NEC_DATA_DW     0x1A
    #define NEC_DATA_LF     0x04
    #define NEC_DATA_RT     0x06
    #define NEC_DATA_OK     0x05
    while(1)
    {
        /*<UserCodeStart>*//*<SinOne-Tag><5>*/
        if(SCD_IR_GetReceiveFlag())
        {
            /*<UserCodeStart>*//*<SinOne-Tag><6>*/
            switch(SCD_IR_Decode_ReadValue(2))
            {
                /*<UserCodeStart>*//*<SinOne-Tag><7>*/
                case NEC_DATA_UP:
                    GPIO_WriteHigh(GPIO0, GPIO_PIN_1);
                    break;
                /*<UserCodeEnd>*//*<SinOne-Tag><7>*/
                /*<UserCodeStart>*//*<SinOne-Tag><8>*/
                case NEC_DATA_DW:
                    GPIO_WriteLow(GPIO0, GPIO_PIN_1);
                    break;
                /*<UserCodeEnd>*//*<SinOne-Tag><8>*/
                /*<UserCodeStart>*//*<SinOne-Tag><9>*/
                case NEC_DATA_OK:
                    GPIO_TogglePin(GPIO0, GPIO_PIN_1);
                    break;
                /*<UserCodeEnd>*//*<SinOne-Tag><9>*/
                /*<UserCodeStart>*//*<SinOne-Tag><17>*/
                default: break;
                /*<UserCodeEnd>*//*<SinOne-Tag><17>*/
            }
            /*<UserCodeEnd>*//*<SinOne-Tag><6>*/
        }
        /*<UserCodeEnd>*//*<SinOne-Tag><5>*/
    }
    /*<UserCodeEnd>*//*<SinOne-Tag><4>*/
    /*<Generated by EasyCodeCube end>*/
}
再用新定义的ISPTOOL工具,把hex烧录到单片机里:

使用特权

评论回复
沙发
chongdongchen|  楼主 | 2022-12-5 09:41 | 只看该作者
烧录完成后,拿起遥控对着开发板就是一通按,结果没反应!!
还以为会一次性成功呢,反复检查魔盒配置和红外配置代码,都没发现问题。。

使用特权

评论回复
板凳
chongdongchen|  楼主 | 2022-12-5 09:51 | 只看该作者
最后在SC_it.c这里发现了问题,本来接收管脚是属于int1,生成的红外解码代码却在int2里面:
void INT2Interrupt()                interrupt 10
{       
    /*INT2_it write here begin*/
    /*INT2_it write here*/
    /*<Generated by EasyCodeCube begin>*/
    /*<UserCodeStart>*//*<SinOne-Tag><23>*/
    //INT2Interrupt
    {
        /*<UserCodeStart>*//*<SinOne-Tag><24>*/
        SCD_IR_Decode();
        /*<UserCodeEnd>*//*<SinOne-Tag><24>*/
    }
    /*<UserCodeEnd>*//*<SinOne-Tag><23>*/
    /*<Generated by EasyCodeCube end>*/
    /*INT2Interrupt Flag Clear begin*/
    /*INT2Interrupt Flag Clear end*/               
}


现在把这个复制到int1里:
void INT1Interrupt()                interrupt 2                
{
    TCON &= 0XF7;//Clear interrupt flag bit
    /*INT1_it write here begin*/
    /*INT1_it write here*/
    /*<Generated by EasyCodeCube begin>*/
        SCD_IR_Decode();
    /*<Generated by EasyCodeCube end>*/
    /*INT1Interrupt Flag Clear begin*/
    /*INT1Interrupt Flag Clear end*/                                       
}


使用特权

评论回复
地板
chongdongchen|  楼主 | 2022-12-5 09:51 | 只看该作者
成功了:

使用特权

评论回复
5
chongdongchen|  楼主 | 2022-12-5 09:59 | 只看该作者
利用了魔盒配置,方便了好多,只需要手写应用代码就可以,不过今天这个中断配置错误,不知道是不是代表发现了魔盒的一个bug呢?

使用特权

评论回复
6
vivilyly| | 2022-12-14 10:03 | 只看该作者
可以移植之前的51单片机的代码。

使用特权

评论回复
7
51xlf| | 2022-12-14 10:12 | 只看该作者
这个使用的 是中断吗?              

使用特权

评论回复
评论
chongdongchen 2023-1-6 09:40 回复TA
是的 
8
RDS小新| | 2022-12-22 17:19 | 只看该作者
您好,魔盒生成的代码受到资源配置和流程图配置两方面的影响,目前魔盒中红外解码这个例程我们默认配置的是INT2中断,在您勾选配置为INT1后,需要手动修改一下流程图中的控件为INT1中断。
后期我们会继续改进,给您带来更好的使用体验,感谢您的反馈~

使用特权

评论回复
9
cashrwood| | 2023-1-5 13:54 | 只看该作者
可不可以实现红外的发送功能?              

使用特权

评论回复
评论
chongdongchen 2023-1-6 09:40 回复TA
目前不能 
10
bartonalfred| | 2023-1-5 14:04 | 只看该作者
这个是自动生成的吗?              

使用特权

评论回复
评论
chongdongchen 2023-1-6 09:41 回复TA
对 
11
robertesth| | 2023-1-5 14:28 | 只看该作者
易码魔盒怎么跟着stm32cubemx似的?

使用特权

评论回复
评论
chongdongchen 2023-1-6 09:41 回复TA
是有点类似 
12
updownq| | 2023-1-9 09:24 | 只看该作者
这个如何做红外的发射呢?              

使用特权

评论回复
13
ingramward| | 2023-1-9 09:54 | 只看该作者
可以移植其他的产品过来吗?              

使用特权

评论回复
14
yeates333| | 2023-1-9 11:11 | 只看该作者
这个解码是自己设计的吗              

使用特权

评论回复
15
usysm| | 2023-1-9 13:01 | 只看该作者
网上有很多的代码可以参考的。              

使用特权

评论回复
16
biechedan| | 2023-1-9 15:12 | 只看该作者
EasyCodeCube能够配置红外的代码吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

1229

帖子

10

粉丝