zxkof83 发表于 2017-7-28 18:53:52

请教大家关于DFPlayer Mini模块播放时长的问题

最近做了一个小物件,是能够在1602屏幕显示一些信息,而且能使用DFPlayer Mini同时播放MP3的,但是在1602显示的时候需要用delay(1000);来进行刷新率的控制,不然就是闪屏,但是播放MP3的时候不需要用delay();这样在一起智能播放MP3曲目的前一秒,很尴尬……请教一下各位,有没有能控制MP3播放又不影响1602刷新率与显示数据的方法?
程序如下:
if (( ( (BPM ) < ( 100 ) ) && ( (BPM) > ( 0 ) ) ))
{
    lcd.setCursor(0,0);
    lcd.print( "Wonderfu" );

    mp3_play (1);
}
if (( ( (BPM ) < (200 ) ) && ( (BPM) > ( 100 ) ) ))
{
    lcd.setCursor(0,0);
    lcd.print( "BAD" );

    mp3_play (2);
}

   lcd.setCursor(0,1);
   lcd.print( "Heart rate: " );
   lcd.print(BPM);

delay(1000);
lcd.clear();


这样的音乐只会响起前1秒,很糟心啊!
求助!!

Forgotten 发表于 2017-7-28 21:33:59

定义一个变量来控制mp3的播放把

zxkof83 发表于 2017-7-31 21:17:06

写了一个函数调用MP3的播放时长,但是1602的显示刷新频率还是受影响

朱文炜 发表于 2017-8-1 01:34:16

可以使用多线程库SCoop,具体可以参考这篇文章
http://blog.csdn.net/sdlgq/article/details/50374867

fats114 发表于 2017-8-4 15:30:40

多线程解决,但是比起楼上的SCoop,才两个线程还是推荐Proto thread,而且程序更容易写点,http://dfrobot.com.cn/community/forum.php?mod=viewthread&tid=11027&highlight=Proto%2Bthread
页: [1]
查看完整版本: 请教大家关于DFPlayer Mini模块播放时长的问题