本帖最后由 jinglixixi_457498010 于 2024-10-20 11:47 编辑

ME32F103开发板提供了多路串口来进行通讯,以交换数据和控制串口设备。

这里是用串口来控制MP3播放模块,该模块的引脚分布如图1所示。

image.png
图1 引脚分布

在最简单的使用情况下,除电源外只需将SPK_1和SPK_2接到扬声器,将RX引脚接到开发板的TX引脚上。

为测试串口对模块的控制,先将该模块与USB转TTL模块相连,然后通过串口调试工具向其方式播放,见图2所示。经测试,其控制效果可听到音乐的播放,说明控制有效。

image.png

图2 播放测试


接下来再解决开发板的串行发送问题,其测试的串行如下:
uint8_t data[10]={0x7E,0xFF,0x06,0x03,0x00,0x00,0x01,0xFE,0xF7,0xEF};
  • int main(void)
  • {
  •         SYS_ExtOSC_EN();
  •         SYS_PLL_Config(EXTERNAL_CLK,72000000);
  •         SYS_SelectMainClkSrc(PLL_CLK);
  •         PA2_INIT(PA2_UART1_TX);
  •         PA3_INIT(PA3_UART1_RX);
  •         UART_Open(UART1,9600,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  •         UART_EnableInt(UART1, UART_RX_INT);
  •         NVIC_EnableIRQ(UART1_IRQn);
  •         UART_Send(UART1, data, 10);
  •         while(1)
  •         {
  •         }
  • }
  • 复制代码

    经程序下载与运行,其执行效果如图3所示,说明程序可以完成字节指令的发送且发送波特率可设置9600bps下工作。

    image.png
    图3 指令发送测试

    在实际应用时,需从SWD接口来获取MP3模块的工作电源,并由ISP接口的TX引脚来连接MP3模块的RX引脚。在运行程序后,其状态见图5所示,可听到MP3模块播放出指定的音乐声,说明MP3模块的播放控制有效。

    image.png
    图4  ISP下载接口

    image.png
    图5 实际测试

    此外,为了播放多首歌曲,可在程序中添加一个按键以改变播放歌曲的序号。