MP3播放器
在飞凌RT1052开发板上配置音频电路,可以进行音频的录制和播放,它需要占用一定的MCU资源,这里介绍的MP3播放是使用MP3播放模块,其整体构成如图1所示。它通过串行通讯口来控制MP3的播放,该模块的引脚如图2所示。
<ignore_js_op>
图1 MP3控制电路
<ignore_js_op>
图2 MP3播放模块引脚图
在使用时,所使用的引脚为:
VCC --- 接5V电源
GND--- 接电源地
RX --- 接串口2的发送端
SPK_1---接喇叭
SPK_2---接喇叭
在控制MP3播放,需要借助K3键来选择下一曲,并通过串口2以9600bps的波特率来发送指令,数据宽度为8位。由串口助手来验证的界面如图3所示。
<ignore_js_op>
图3 串口发送控制指令
播放下一首MP3的指令被存放在数组中,其内容如下:
uint8_t cmd1[] = {0X7E, 0xFF, 0x06, 0X01, 00, 00, 00, 0xFE, 0xFA, 0XEF}; //next
该MP3的播放器的控制主程序如下:
- int main(void)
- {
- uint8_t ch;
- lpuart_config_t config;
- BOARD_ConfigMPU();
- BOARD_InitPins();
- BOARD_BootClockRUN();
- gpio_pin_config_t sw_config = {
- kGPIO_DigitalInput, 0,
- kGPIO_NoIntmode,
- };
- GPIO_PinInit(GPIO5, (0U), &sw_config);
- LPUART_GetDefaultConfig(&config);
- config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
- config.enableTx = true;
- config.enableRx = true;
- config.dataBitsCount = kLPUART_EightDataBits;
- config.isMsb = false;
- LPUART_Init(DEMO_LPUART, &config, DEMO_LPUART_CLK_FREQ);
- while (1)
- {
- if(0 == GPIO_PinRead(GPIO5, (0U))) LPUART_WriteBlocking(DEMO_LPUART, cmd1, 10);
- delay();
- delay();
- delay();
- delay();
- }
- }
在使用过程中,每按一下K3就自动进入下一首MP3的播放。本想使用KEY_PAD来接入一个软件盘来多扩展几个键以进行下一首、播放及暂停的控制,但按键设备一直有问题,只好暂时舍弃了。