初级会员
- 积分
- 74
- 金钱
- 74
- 注册时间
- 2015-9-19
- 在线时间
- 1 小时
|
5金钱
您好,原子哥,我想修改一下音乐播放器实验源程序,本来是用按键控制音乐开始暂停的,程序部分如下
while(1)
{
key=KEY_Scan(0);
if(key==WKUP_PRES)//暂停
{
audiodev.status&=~(1<<0);
}
if(key==KEY1_PRES)//开始
{
audiodev.status|=0X01;
}
if(key==KEY2_PRES||key==KEY0_PRES)//下一曲/上一曲
{
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=!LED0;
}
if((audiodev.status&0X01)==0)delay_ms(10);
else break;
}
我想把中间改成了蓝牙控制,程序如下
while(1)
{
if(USART3_RX_STA&0X8000) //接收到一次数据了
{
LCD_Fill(30,200,240,320,WHITE); //清除显示
reclen=USART3_RX_STA&0X7FFF; //得到数据长度
USART3_RX_BUF[reclen]=0; //加入结束符
if(reclen==9||reclen==8) //控制DS1检测
{
if(strcmp((const char*)USART3_RX_BUF,"+LED1 ON")==0)LED1=0; //打开LED1
if(strcmp((const char*)USART3_RX_BUF,"+LED1 OFF")==0)LED1=1;//关闭LED1
}
}
LCD_ShowString(30,200,209,119,16,USART3_RX_BUF);//显示接收到的数据
if(strcmp((const char*)USART3_RX_BUF,"zanting")==0)//暂停
{
audiodev.status&=~(1<<0);
USART3_RX_STA=0;
}
if(strcmp((const char*)USART3_RX_BUF,"kaishi")==0)//开始
{
audiodev.status|=0X01;
USART3_RX_STA=0;
}
if(strcmp((const char*)USART3_RX_BUF,"shangyiqu")==0)//上一曲
{
USART3_RX_STA=0;
res=3;
break;
}
if(strcmp((const char*)USART3_RX_BUF,"xiayiqu")==0)//下一曲
{
USART3_RX_STA=0;
res=1;
break;
}
wav_get_curtime(audiodev.file,&wavctrl);//得到总时间和当前播放的时间
audio_msg_show(wavctrl.totsec,wavctrl.cursec,wavctrl.bitrate);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
if((audiodev.status&0X01)==0)delay_ms(10);
else break;
}
其他部分不变,不知道为什么只能接收第一次蓝牙传过来的数据,后边的数据就不执行了,不知道是哪里的问题,还请大神指导一下
|
|