找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1515|回复: 0
打印 上一主题 下一主题
收起左侧

ESK32-360开发板的音频输出

[复制链接]
跳转到指定楼层
楼主
ESK32-360开发板在硬件上支持音频的录制和播放,它是以I2S接口的WM8978编解码芯片来实现的,其接口电路如图1所示。
                              

图1 音频电路

其中,扬声器的接口是以LS1的焊盘的形式来给出的,见图2所示。通常情况下,我们可以通过接口J1接耳机来收听。


图2 扬声器接口

1. I2S功能测试
在下载出厂例程的情况下,每当按下复位键就会听到“卡”的声响。此外,若接好串行通讯,则通过串口可见到图3所示的输出内容。


图3 串口输出内容

鉴于手头的相关资料较少,很难做进一步的扩展,其实这一个非常有用的功能单元,也还有开发的潜力。
2. MP3语音模块及使用
既然I2S没有让我们听到一丝优美的旋律,那我们就另想它法吧!
MP3语音播放模块是一款小巧的音频功能模块,通过串口的指令控制,依然能奏出美妙的旋律。该功能模块的引脚分布如图4所示。

图4 MP3引脚分布

此外,在通常的使用中最常用的MP3播放指令为播放指令、停止指令及音量调节指令:
将此指令存放到数组中,并借助串口的方式即可到达播放的目的。
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

实现歌曲播放的主程序如下:
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屏下的乐曲选播

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表