阿波罗板~音乐播放把红外~干死了! 红外乱码了,大神求解

2019-07-20 10:02发布

阿波罗板~音乐播放把红外~干死了! 红外乱码了,大神求解
希望实现 通过红外 播放下一首。。结果 几乎不鸟我。。。极低概率有效。。求解 ,都是用的例程代码,没有什么改动 除了下部分:

                                       while(1)
                                        {
                                                ir_key=Remote_Scan();
                                                key=KEY_Scan(0);
                                               
                                                if(key==WKUP_PRES||ir_key==ir_pause)//暂停
                                                {
                                                        if(ir_key==ir_pause)key=WKUP_PRES;//dyx
                                                        if(audiodev.status&0X01)audiodev.status&=~(1<<0);
                                                        else audiodev.status|=0X01;  
                                                }
                                                if(key==KEY2_PRES||key==KEY0_PRES||ir_key==ir_up||ir_key==ir_down)//下一曲/上一曲
                                                {
                                                        if(ir_key==ir_up)key=KEY2_PRES;//dyx
                                                        if(ir_key==ir_down)key=KEY0_PRES;//dyx
                                                        res=key;
                                                        break;
                                                }
                                                wav_get_curtime(audiodev.file,&wavctrl);//得到总时间和当前播放的时间
                                                audio_msg_show(wavctrl.totsec,wavctrl.cursec,wavctrl.bitrate);
                                                t++;
                                                if(t==20)
                                                {
                                                        t=0;
                                                        LED0_Toggle;
                                                }
                                                if((audiodev.status&0X01)==0)delay_ms(10);
                                                else break;
                                        }


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
dyxcrazy
2019-07-20 11:56
通过 逐个调试累死我了。。似乎发现了原因所在:
应该是 读U盘的时候 关闭了 总中断 导致红外接收出错了。。。
@原子哥  是这个缘故吧?

u8 SD_ReadDisk(u8* buf,u32 sector,u8 cnt)
{
    u8 sta=SD_OK;
    long long lsector=sector;
    u8 n;
    lsector<<=9;
    INTX_DISABLE();//关闭总中断(POLLING模式,严禁中断打断SDIO读写操作!!!)
    if((u32)buf%4!=0)
    {
        for(n=0;n<cnt;n++)
        {
            sta=HAL_SD_ReadBlocks(&SDCARD_Handler,(uint32_t*)SDIO_DATA_BUFFER,lsector+512*n,512,1);//单个sector的读操作
            memcpy(buf,SDIO_DATA_BUFFER,512);
            buf+=512;
        }
    }else
    {
        sta=HAL_SD_ReadBlocks(&SDCARD_Handler,(uint32_t*)buf,lsector,512,cnt);//单个sector的读操作
    }
    INTX_ENABLE();//开启总中断
    return sta;

一周热门 更多>