2017-7-28 18:53:52 [显示全部楼层]
5336浏览
查看: 5336|回复: 4

请教大家关于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/ ... ight=Proto%2Bthread
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail