ESK32-360開發(fā)板在硬件上支持音頻的錄制和播放,它是以I2S接口的WM8978編解碼芯片來實現(xiàn)的,其接口電路如圖1所示。
1.jpg (25.44 KB, 下載次數(shù): 66)
下載附件
2020-8-18 09:30 上傳
圖1 音頻電路
其中,揚聲器的接口是以LS1的焊盤的形式來給出的,見圖2所示。通常情況下,我們可以通過接口J1接耳機來收聽。
2.jpg (9.19 KB, 下載次數(shù): 71)
下載附件
2020-8-18 09:30 上傳
圖2 揚聲器接口
1. I2S功能測試 在下載出廠例程的情況下,每當按下復(fù)位鍵就會聽到“卡”的聲響。此外,若接好串行通訊,則通過串口可見到圖3所示的輸出內(nèi)容。
3.jpg (33.16 KB, 下載次數(shù): 65)
下載附件
2020-8-18 09:30 上傳
圖3 串口輸出內(nèi)容
鑒于手頭的相關(guān)資料較少,很難做進一步的擴展,其實這一個非常有用的功能單元,也還有開發(fā)的潛力。 2. MP3語音模塊及使用 既然I2S沒有讓我們聽到一絲優(yōu)美的旋律,那我們就另想它法吧! MP3語音播放模塊是一款小巧的音頻功能模塊,通過串口的指令控制,依然能奏出美妙的旋律。該功能模塊的引腳分布如圖4所示。
4.jpg (11.02 KB, 下載次數(shù): 73)
下載附件
2020-8-18 09:30 上傳
圖4 MP3引腳分布
此外,在通常的使用中最常用的MP3播放指令為播放指令、停止指令及音量調(diào)節(jié)指令: 將此指令存放到數(shù)組中,并借助串口的方式即可到達播放的目的。 uint8_t cmd3[] = {0X7E, 0xFF, 0x06, 0X03,00, 00, 01, 0xFE, 0xF7, 0XEF}; //play index uint8_t cmd6[] = {0X7E, 0xFF, 0x06, 0X06,00, 00, 10, 0xFE, 0xE5, 0XEF}; //set Volume uint8_t cmd5[] = {0X7E, 0xFF, 0x06, 0X16,00, 00, 00, 0xFE, 0xE5, 0XEF}; //stop
實現(xiàn)歌曲播放的主程序如下: int main(void) { u16n;
UxART_Configuration(); UxART_TxTest();
while(1) { while(USART_GetFlagStatus(HTCFG_UART_PORT, USART_FLAG_RXDR) == RESET); n= USART_ReceiveData(HTCFG_UART_PORT); UxART_TxSend(n); playn(n); mp3(); } }
在編譯下載程序后,通過串口我們即可指定播放的樂曲,其操作過程如圖5所示和圖6所示。 若配接OLED屏的顯示,則可以通過菜單的選擇來播放,其效果如圖7所示。
5.jpg (35.71 KB, 下載次數(shù): 65)
下載附件
2020-8-18 09:30 上傳
圖5 播放第2首
6.jpg (36.63 KB, 下載次數(shù): 61)
下載附件
2020-8-18 09:30 上傳
圖6 播放第5首
7.jpg (36.31 KB, 下載次數(shù): 68)
下載附件
2020-8-18 09:30 上傳
圖7 OLED屏下的樂曲選播
|