本帖最后由 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 播放测试


接下来再解决开发板的串行发送问题,其测试的串行如下:
  1. uint8_t data[10]={0x7E,0xFF,0x06,0x03,0x00,0x00,0x01,0xFE,0xF7,0xEF};
  2. int main(void)
  3. {
  4.         SYS_ExtOSC_EN();
  5.         SYS_PLL_Config(EXTERNAL_CLK,72000000);
  6.         SYS_SelectMainClkSrc(PLL_CLK);
  7.         PA2_INIT(PA2_UART1_TX);
  8.         PA3_INIT(PA3_UART1_RX);
  9.         UART_Open(UART1,9600,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);
  10.         UART_EnableInt(UART1, UART_RX_INT);
  11.         NVIC_EnableIRQ(UART1_IRQn);
  12.         UART_Send(UART1, data, 10);
  13.         while(1)
  14.         {
  15.         }
  16. }

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

image.png
图3 指令发送测试

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

image.png
图4  ISP下载接口

image.png
图5 实际测试

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