完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,原子哥,我想修改一下音乐播放器实验源程序,本来是用按键控制音乐开始暂停的,程序部分如下
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; } 其他部分不变,不知道为什么只能接收第一次蓝牙传过来的数据,后边的数据就不执行了,不知道是哪里的问题,还请大神指导一下 音乐播放蓝牙控制.zip (10.34 MB ) |
|
相关推荐
4个回答
|
|
建议你用strncmp
|
|
|
|
strncmp和strcmp有什么区别呢
|
|
|
|
函数:int strcmp (const char *s1, const char *s2)
这个函数用来比较s1和s2字符串,这个函数将返回一个值,它的符号与第一对不同的字符的比较结果相关。 如果两个字符串相等的话,strcmp将返回0。 如果s1是s2的一个子串的话,s1小于s2 此外还有函数 int strncmp (const char *s1, const char *s2, size_t size) 此函数与strcmp极为类似。不同之处是,strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。 我觉得原因不在这里,而且原子哥也用的strcmp |
|
|
|
仿真。。。。
|
|
|
|
只有小组成员才能发言,加入小组>>
335浏览 1评论
451浏览 1评论
579浏览 1评论
用PSOC6 BLE当外围设备,两者传输数据时,psoc6概率性出现蓝牙挂死的原因?
463浏览 1评论
是否有办法通过CYW20835板的固件发送BLE HCI命令?
435浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 08:19 , Processed in 0.974694 second(s), Total 81, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号