MP3播放器

在飞凌RT1052开发板上配置音频电路,可以进行音频的录制和播放,它需要占用一定的MCU资源,这里介绍的MP3播放是使用MP3播放模块,其整体构成如图1所示。它通过串行通讯口来控制MP3的播放,该模块的引脚如图2所示
<ignore_js_op>

图片1.png (746.45 KB, 下载次数: 29)

下载附件

2018-11-12 14:45 上传

 
   图1  MP3控制电路


<ignore_js_op>
   图2  MP3播放模块引脚图
 

在使用时,所使用的引脚为:
VCC --- 5V电源
GND--- 接电源地
RX  --- 接串口2的发送端
SPK_1---接喇叭
SPK_2---接喇叭
 

    在控制MP3播放,需要借助K3键来选择下一曲,并通过串口29600bps的波特率来发送指令,数据宽度为8位。由串口助手来验证的界面如图3所示。
<ignore_js_op>
图3  串口发送控制指令

 
播放下一首MP3的指令被存放在数组中,其内容如下:
uint8_t cmd1[] = {0X7E, 0xFF, 0x06, 0X01, 00, 00, 00, 0xFE, 0xFA, 0XEF}; //next


MP3的播放器的控制主程序如下:
  1. int main(void)
  2. {
  3.     uint8_t ch;
  4.     lpuart_config_t config;
  5.     BOARD_ConfigMPU();
  6.     BOARD_InitPins();
  7.     BOARD_BootClockRUN();
  8.         gpio_pin_config_t sw_config = {
  9.         kGPIO_DigitalInput, 0,
  10.         kGPIO_NoIntmode,
  11.     };
  12.         GPIO_PinInit(GPIO5, (0U),  &sw_config);
  13.     LPUART_GetDefaultConfig(&config);
  14.     config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE;
  15.     config.enableTx = true;
  16.     config.enableRx = true;
  17.     config.dataBitsCount = kLPUART_EightDataBits;
  18.     config.isMsb = false;
  19.     LPUART_Init(DEMO_LPUART, &config, DEMO_LPUART_CLK_FREQ);
  20.     while (1)
  21.     {
  22.                 if(0 == GPIO_PinRead(GPIO5, (0U)))    LPUART_WriteBlocking(DEMO_LPUART, cmd1, 10);
  23.                 delay();
  24.                 delay();
  25.                 delay();
  26.                 delay();
  27.     }
  28. }
复制代码
    在使用过程中,每按一下K3就自动进入下一首MP3的播放。本想使用KEY_PAD来接入一个软件盘来多扩展几个键以进行下一首、播放及暂停的控制,但按键设备一直有问题,只好暂时舍弃了。

posted on 2022-06-19 15:48  张凌001  阅读(105)  评论(0编辑  收藏  举报

导航