找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2158|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

ESK32-360開發(fā)板的音頻輸出

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:776997 發(fā)表于 2020-8-18 09:31 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
ESK32-360開發(fā)板在硬件上支持音頻的錄制和播放,它是以I2S接口的WM8978編解碼芯片來實現(xiàn)的,其接口電路如圖1所示。
                              

圖1 音頻電路

其中,揚聲器的接口是以LS1的焊盤的形式來給出的,見圖2所示。通常情況下,我們可以通過接口J1接耳機來收聽。


圖2 揚聲器接口

1. I2S功能測試
在下載出廠例程的情況下,每當按下復(fù)位鍵就會聽到“卡”的聲響。此外,若接好串行通訊,則通過串口可見到圖3所示的輸出內(nèi)容。


圖3 串口輸出內(nèi)容

鑒于手頭的相關(guān)資料較少,很難做進一步的擴展,其實這一個非常有用的功能單元,也還有開發(fā)的潛力。
2. MP3語音模塊及使用
既然I2S沒有讓我們聽到一絲優(yōu)美的旋律,那我們就另想它法吧!
MP3語音播放模塊是一款小巧的音頻功能模塊,通過串口的指令控制,依然能奏出美妙的旋律。該功能模塊的引腳分布如圖4所示。

圖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 播放第2


6 播放第5

7  OLED屏下的樂曲選播

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表