阿波罗板~音乐播放把红外~干死了! 红外乱码了,大神求解
希望实现 通过红外 播放下一首。。结果 几乎不鸟我。。。极低概率有效。。求解 ,都是用的例程代码,没有什么改动 除了下部分:
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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
应该是 读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;
一周热门 更多>