This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR4133:与 DFPlayer Mini 连接

Guru**** 2224180 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1355488/msp430fr4133-interfacing-with-dfplayer-mini

器件型号:MSP430FR4133

大家好、我正在尝试将 MSP430与外置迷你 MP3音频播放器连接起来。   不过、我不明白为什么该代码未播放我连接的 SD 卡上存储的任何音频文件、 硬件本身的功能确实很好、因为我可以使用按钮等来运行音频文件。但是、每当数据通过 MSP 发送到播放器本身时、就不会有输出。
这里是我的 main.c 文件。  
我还上传了我的 DFP.c 和 DFPlayer.h 代码、该代码来源于 Github。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <msp430.h>
#include <intrinsics.h>
#include <stdlib.h>
#include <DFPlayer.h>
void Uart_Init(void) {
P1SEL0 |= BIT0 | BIT1; // Set P1.0 and P1.1 to UART function
UCA0CTLW0 |= UCSWRST; // Enable software reset
UCA0CTLW0 |= UCSSEL__SMCLK; // Use SMCLK
UCA0BR0 = 52; // Baud rate setting for 9600 bps with 4MHz SMCLK
UCA0BR1 = 0x00;
UCA0MCTLW = 0x4900 | UCOS16 | UCBRF_1; // Modulation settings
UCA0CTLW0 &= ~UCSWRST; // Disable software reset
}
void UART_Send_Data(unsigned char data) {
while (!(UCA0IFG & UCTXIFG)); // Wait for TX buffer to be ready
UCA0TXBUF = data; // Transmit data
}
unsigned char UART_Read_Data(void) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "DFPlayer.h"
void DFPlayer_send_cmd(struct DFPlayer *player, char cmd,int16_t parameter)
{
char buffer[10];
int16_t CRC;
CRC = -(0xFF + 0x06 + cmd + (parameter>>8) + parameter);
buffer[0] = 0x7E;
buffer[1] = 0xFF;
buffer[2] = 0x06;
buffer[3] = cmd;
buffer[4] = 0x00;
buffer[5] = (char)(parameter>>8);
buffer[6] = (char)parameter;
buffer[7] = (char)(CRC>>8);
buffer[8] = (char)CRC;
buffer[9] = 0xEF;
player->send(buffer, 10);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef DFPLAYER_H
#define DFPLAYER_H
#include <stdint.h>
#define DFPLAYER_CMD_NEXT 0x01
#define DFPLAYER_CMD_PRESVIOUS 0x02
#define DFPLAYER_CMD_TRACK 0x03
#define DFPLAYER_CMD_VOLUME_P 0x04
#define DFPLAYER_CMD_VOLUME_M 0x05
#define DFPLAYER_CMD_VOL_MANU 0x06
#define DFPLAYER_CMD_EQ 0x07
#define DFPLAYER_CMD_MODE 0x08
#define DFPLAYER_CMD_STDBY 0x0A
#define DFPLAYER_CMD_NORMAL 0x0B
#define DFPLAYER_CMD_RESET 0x0C
#define DFPLAYER_CMD_PLAYBACK 0x0D
#define DFPLAYER_CMD_PAUSE 0x0E
#define DFPLAYER_CMD_FOLDER 0x0F
#define DFPLAYER_CMD_VOL_ADJ 0x10
#define DFPLAYER_CMD_REPEAT 0x11
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX