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来接入一个软件盘来多扩展几个键以进行下一首、播放及暂停的控制,但按键设备一直有问题,只好暂时舍弃了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)