Проблемы с dfplayer

Приветствую! Проблема у меня с библиотекой для fdplayer mini(DFPlayer_Mini_Mp3.h). Использую стандартный пример DFPlayer_Simple, в ней есть строчка для вывода в монитор порта статус работы платы плеера(Serial.println(mp3_get_state());). В скетче ничего не трогалось, но проект не компилируется, жалуется на данную строчку, а мне для проекта нужно как раз считывать данные с платы плеера. Пробовал другие библиотеки для работы с этим модулем, увы они не запустили мой модуль, а библиотека DFPlayer_Mini_Mp3.h смогла его запустить.

/*******************************************************************************
 * DFPlayer_Mini_Mp3, This library provides a quite complete function for      * 
 * DFPlayer mini mp3 module.                                                   *
 * www.github.com/dfrobot/DFPlayer_Mini_Mp3 (github as default source provider)*
 *  DFRobot-A great source for opensource hardware and robot.                  *
 *                                                                             *
 * This file is part of the DFplayer_Mini_Mp3 library.                         *
 *                                                                             *
 * DFPlayer_Mini_Mp3 is free software: you can redistribute it and/or          *
 * modify it under the terms of the GNU Lesser General Public License as       *
 * published by the Free Software Foundation, either version 3 of              *
 * the License, or any later version.                                          *
 *                                                                             *
 * DFPlayer_Mini_Mp3 is distributed in the hope that it will be useful,        *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of              *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               *
 * GNU Lesser General Public License for more details.                         *
 *                                                                             *
 * DFPlayer_Mini_Mp3 is distributed in the hope that it will be useful,        *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of              *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               *
 * GNU Lesser General Public License for more details.                         *
 *                                                                             *
 * You should have received a copy of the GNU Lesser General Public            *
 * License along with DFPlayer_Mini_Mp3. If not, see                           *
 * <http://www.gnu.org/licenses/>.                                             *
 *									       *
 ******************************************************************************/

/*
 *	Copyright:	DFRobot
 *	name:		DFPlayer_Mini_Mp3 sample code
 *	Author:		lisper <lisper.li@dfrobot.com>
 *	Date:		2014-05-30
 *	Description:	sample code for DFPlayer Mini, this code is test on Uno
 *			note: mp3 file must put into mp3 folder in your tf card
 */

#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

//
void setup () {
	Serial.begin (19200);
	mp3_set_serial (Serial);	//set Serial for DFPlayer-mini mp3 module 
	mp3_set_volume (15);
}


//
void loop () {  

  Serial.println(mp3_get_state());
   
	mp3_play (1);
	delay (6000);
	mp3_next ();
	delay (6000);
	mp3_prev ();
	delay (6000);
	mp3_play (4);
	delay (6000);
 mp3_get_state();
}
void mp3_get_state ();
/*
   mp3_play ();		//start play
   mp3_play (5);	//play "mp3/0005.mp3"
   mp3_next ();		//play next 
   mp3_prev ();		//play previous
   mp3_set_volume (uint16_t volume);	//0~30
   mp3_set_EQ ();	//0~5
   mp3_pause ();
   mp3_stop ();
   void mp3_get_state (); 	//send get state command
   void mp3_get_volume (); 
   void mp3_get_u_sum (); 
   void mp3_get_tf_sum (); 
   void mp3_get_flash_sum (); 
   void mp3_get_tf_current (); 
   void mp3_get_u_current (); 
   void mp3_get_flash_current (); 
   void mp3_single_loop (boolean state);	//set single loop 
   void mp3_DAC (boolean state); 
   void mp3_random_play (); 
 */

Нету там такой строчки. Или показывайте, где брали библиотеку

библиотеку скачал по ссылке под видео на ютубе. А вообще реально считать с этой платы такие данные как: отсчет времени, номер трека?

Очень полезная информация.

В вашем случае нет. Вы пихаете в код строки, даже не понимая, что они делают. Обратите внимание на строку 75 своего кода:

void mp3_get_state (); 	//send get state command

слово void видите? Оно означает, что функция ничего (вообще ничего) не возвращает. И что же вы хотите вывести в сериал?

1 лайк

он учится видимо, а утащил все вот отсюда

Там папка examples пустая, так что не оттуда ))

Он впихнул в пример две своих строки (53 и 63), но рассказывает, что они там были. Нехорошо обманывать старших :neutral_face:

Вот тут со всеми примерами, но этих строк в искомом примере нету ))

Посмотрите как пользоваться этим функциями

                        else if (strcmp (cmdbuf[0], "state") == 0) {
                                mp3_get_state ();
                                print_info ();
                        } 

в примере DFPlayer_Mini_Test.ino
Строки 125-128. Это не функция возвращающая результат. Это запрос на выдачу информации в порт. Все получение реализовано в print_info().

Писец. Уроки на сайте iarduino надо законодательно запретить. Это ведь именно там было return loop(); и вот новая перлятина :frowning:

Недавно тоже пробовал подключить DF mp3 player mini
однако, когда есть возможность не использовать “левые библиотеки”, стараюсь использовать доступ напрямую.
Как например тут:

И именно оттуда пробовал его применять.
Однако, некоторые запросы “не отвечали”, то ли изза помех, толи отттого что их нет. В частности не получилось получить ответ на команду 0х3F
|0x3F|00|00|Список доступных устройств (побитно) USB 1, TF 2, Flash 4|
и запрос статуса плеера (команда 0x42)
|0x42|NN|MM|Статус плеера NN - 1 USB/2 TF, MM - 0 Stop/1 Play/2 Pause|

попробуй, может тебе поможет в твоём вопросе.
Там точно рабочий пример. Правда, мне кажется есть некоторые некритичные опечатки, но посмотри комментарии внизу.