意在将DFRobotDFPlayerMini.h库中的常用函数刨析完

本文的用意在于串口通讯的串口函数解析,不对硬件进行分析使用。

关于硬件方面使用 IO口 待有时间另作分析。


使用此库,开篇两样

#include "DFRobotDFPlayerMini.h"
DFRobotDFPlayerMini myDFPlayer; //示例化对象名称

MP3mini模块是使用串口通讯,我这里使用虚拟串口

#include "DFRobotDFPlayerMini.h"
#include <SoftwareSerial.h>
#include <arduino.h>
DFRobotDFPlayerMini myDFPlayer;  //示例化对象名称
SoftwareSerial BTserial(12, 13); // 建立SoftwareSerial对象,RX引脚2, TX引脚3

steup()函数中初始化使用

BTserial.begin(9600);
myDFPlayer.begin(BTserial);

先简单的测试通讯一下
接线方式如下

TF卡中将MP3文件放在根目录 MP3文件命名为 0003.mp3

/*
【Arduino】66种传感器模块系列实验(85)
实验八十五:开源 Mini MP3 Player TF卡播放器模块(YX5200-24SS)
程序之一,循环播放TF卡内0003.MP3(MP3文件夹内),音量20
Arduino-------dfplayer
5V-------------VCC
GND-----------GND
D2-----------TXD
D3-----------RXD
*/#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"SoftwareSerial mySoftwareSerial(2, 3); DFRobotDFPlayerMini myDFPlayer;void setup()
{mySoftwareSerial.begin(9600);myDFPlayer.begin(mySoftwareSerial);myDFPlayer.volume(20);   //音量设定为20 myDFPlayer.loop(3);    //循环播放TF卡中 0003.mp3 文件
}void loop()
{}

下面我们对的库函数按照技术手册中的顺序进行逐一解释



假定我们已经实例化了一个 MP3mini模块的对象

#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(2, 3);
DFRobotDFPlayerMini myDFPlayer; //示例化对象名称
void setup() {mySoftwareSerial.begin(9600);myDFPlayer.begin(mySoftwareSerial);
}

无返回值

myDFPlayer.next()        //下一曲
myDFPlayer.previous()    //上一曲
myDFPlayer.play(3)       //指定曲目(NUM) 1-2999  参数添入 int 型参数
myDFPlayer.volumeUp()    //音量+
myDFPlayer.volumeDown()  //音量-
myDFPlayer.volume(20)    //指定音量 0-30
myDFPlayer.EQ(0)         // 指定 EQ 0/1/2/3/4/5    参数功能  Normal/Pop/Rock/Jazz/Classic/Bass (这个还没有用过,等我知道怎么用了再详细解释)
myDFPlayer.loop(3)       //单曲循环指定曲目播放 0-2999
myDFPlayer.outputDevice(2)//指定播放设1/2/3/4/5     参数功能  U/SD/AUX/SLEEP/FLASH
myDFPlayer.sleep()       //进入睡眠 -- 低功耗
myDFPlayer.reset()       //模块复位
myDFPlayer.start()       //播放
myDFPlayer.pause()       //暂停
myDFPlayer.playFolder(1,1)  //指定文件夹播放 1-10(需要自己设定) 前面为文件夹,后面为文件夹中的文件名

关于指定文件加播放,指定MP3文件。这个地方要详细说一下,当时第一次调试时就陷入了一个很大的误区。做后发现是文件夹的命名不对。
1、文件夹的命名,为两位是两位数字 比如 01, 02····等等
2、文件夹要放在文件根目录。
3、有的说要放在一个mp3的文件夹中,经过我的实测,其实没有必要。当然我的TF卡中只有播放用的文件,没有其他。如果你的TF卡中有其他的文件夹,那可能就说不准了。
命名方式如以下

文件的命名为前三位为数字。
如:


这样,playFolder函数就能准确找到指定问价夹中的指定文件了
文件夹名称(1 ~ 99);文件名(1 ~ 255)
比如,我们想播放 02文件夹中的第3个MP3
我们就可以这么写

myDFPlayer.playFolder(2,3)

继续函数解释

myDFPlayer.outputSetting(1,2)   //扩音设置(无) 参数1:bool型 [DH=1:开扩音] 参数2:uint8_t型 [DL:设置增益0-31]
myDFPlayer.enableLoopAll()      //全部循环播放
myDFPlayer.disableLoopAll()     //停止循环播放
myDFPlayer.playMp3Folder(1)     //指定 MP3文件夹曲目 0--9999
myDFPlayer.advertise(1)         //插播广告 0--9999
myDFPlayer.playLargeFolder(1,2) //用法和playFolder一样,这个支持的更多
myDFPlayer.stopAdvertise()      //停止插播,播放背景
myDFPlayer.stop()               //停止播放
myDFPlayer.loopFolder(2)        //指定文件夹循环播放 参数为指定文件夹中的名字
myDFPlayer.randomAll()          //随机播放
myDFPlayer.enableLoop()         //循环播放关闭
myDFPlayer.disableLoop()        //循环播放开启
myDFPlayer.enableDAC()          //关闭DAC
myDFPlayer.disableDAC()         //开启DAC

查询类型函数,有返回值,都是返回 int 类型的数据

myDFPlayer.readState()          //查询当前状态
myDFPlayer.readVolume()         //查询当前音量
myDFPlayer.readEQ()             //查询当前 EQ
myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD) //查询文件数目//  DFPLAYER_DEVICE_U_DISK :查询 UDISK 的总文件数//  DFPLAYER_DEVICE_SD     : 查询 TF 卡的总文件数//  DFPLAYER_DEVICE_FLASH  : 查询 FLASH 的总文件数
myDFPlayer.readCurrentFileNumber(DFPLAYER_DEVICE_SD) //查询当前曲目//  DFPLAYER_DEVICE_U_DISK :查询 UDISK 的当前曲目//  DFPLAYER_DEVICE_SD     : 查询 TF 卡的当前曲目//  DFPLAYER_DEVICE_FLASH  : 查询 FLASH 的当前曲目
myDFPlayer.readFileCountsInFolder(2) //查询指定文件夹里的文件总数
myDFPlayer.readFolderCounts()        //查询总文件数

以上,就是我整理的 DFRobotDFPlayerMini.h库的函数整理

MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解相关推荐

  1. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  2. 【Python入门】Python之OS模块39个常用函数详解

    os,语义操作系统,所以该模块就是操作系统相关的功能了,用于处理文件和目录这些我们日常手动需要做的操作,比如新建文件夹.获取文件列表.删除某个文件.获取文件大小.重命名文件.获取文件修改时间等,该模块 ...

  3. 【C语言】conio.h 函数详解

    一,简介 conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数 ...

  4. Python学习:random模块下的choices()函数详解

    1.random.choice(seq)函数 从非空序列中随机选取一个数据并返回,该序列可以是list.tuple.str.set. 举例: import random print(random.ch ...

  5. 【Python入门】Python之shutil模块11个常用函数详解

    shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查看等方法,还提供了对文件以及目录的路径操作.shutil模块提供了移动.复制. ...

  6. python中paste函数的作用_PIL图像处理模块paste方法简单使用详解

    python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的,现在 ...

  7. Arduino CNC电机扩展板详解(A4988驱动42步进电机)

    原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/ ...

  8. FatFs文件系统Nandflash驱动函数详解

    FatFs文件系统Nandflash驱动函数详解 转载 2015-08-06 14:43:27 标签:nandflash驱动函数详fatfs文件系统nandfla 本文讲解FatFs文件系统 下需要的 ...

  9. 如何用树莓派连接语音模块,红外模块来控制红外设备详解

    如何用树莓派连接语音模块,红外模块来控制红外设备详解 1.硬件设备 2.软件准备 3.解码 1.红外解码流程 1.连接红外设备(与TTL串口相连) 2.获取开关红外电器的码 4.我们使用树莓派如何和W ...

最新文章

  1. PHP 5.4 的新特性
  2. 如何创建一个新浪微博应用以及获得Access token
  3. 两个数之间的最短路径问题
  4. 优酷html5视频没有弹幕,优酷弹幕怎么设置 优酷PC端怎么屏蔽底下弹幕?
  5. 前端学习(2773):条件编译和跨端兼容
  6. poj 1724ROADS(bfs和dfs做法)
  7. 1G服务器网站,1核1g内存云服务器建网站
  8. 地图大数据来了!中国人口吸引力城市TOP 10
  9. wpf,后台触发按钮点击以及拖动
  10. android微信第三方登录怎么通过code获取openid?
  11. Java Mysql数据库创建视图、索引、备份和恢复
  12. 【5003】马遍历问题
  13. CPU的睿频、超线程、SIMD指令集等特性对密码算法性能的影响
  14. plsql使用存储过程添加数据
  15. doc-config.php,Suitecrm实施-配置SuiteCRM config.php文件
  16. 机器学习模型太慢?来看看英特尔(R) 扩展加速 ⛵
  17. python pppoe拨号_linux文本模式下使用PPPOE拨号ADSL上网的方法
  18. C语言 - 学习实践
  19. 德莱联盟(判断两点是否相交 nyist)
  20. 【博学谷学习记录】超强总结,用心分享 | 狂野大数据 | 环境 | hive搭建

热门文章

  1. 从优化角度推导主成分分析法(PCA)的数学原理
  2. 7-2 查询水果价格 (15 分)
  3. 微信公众号第三方平台开发PYTHON教程 PART 1
  4. uni-app ——uni-app的基本使用
  5. 推荐系统8---FNN、DeepFM与NFM(FM在深度学习中的身影重现)
  6. Warshall算法(用法详解,并转换成代码的形式)
  7. U3D AudioSource 完整音效截取部分
  8. 基于的Java的十进制转二进制实现
  9. iOS Xcode中UIButton文字换行
  10. jq的深浅复制:extend()