wambob 发表于 2017-4-10 21:24:38

【NUCLEO-L496ZG评测】+定时器+DAC播放音乐

【NUCLEO-L496ZG评测】+开箱+对比
【NUCLEO-L496ZG评测】+开发板上电
【NUCLEO-L496ZG评测】开发环境搭建及Coremark 跑分


   详见: 第二篇 嵌入式系统硬件输出系统简介及播放实验(播放篇之一)
   不贴网址了。
前几天跟着学了下播放音乐,了解音乐硬件播放原理。
根据教程移植到了STM32L496ZG板上了,使用定时器和 DAC,非常有意思。
      使用STM32CubeMX建立工程
1.使能DAC1通道

2.使能定时器6

如果需要串口调试或打印信息,需要开启串口。
3.时钟配置

4.DAC1设置参数并开启中断


5.定时器设置参数并开启中断


查参考手册,TIme6挂在APB1总线上

根据时钟配置图可知,系统时钟为80MHz时,APB1总线上的定时器时钟也是80MHz。

现在需要DAC在8000的采样率。则向上计数为80000000/8000=10000。预装载计数器值为9999。
6.NVIC设置

9.生成工程设置

10.导出工程并添加音频代码

开启定时器中断

中断回调函数里添加播放控制

工程代码:
原教程代码:

补充一下,工程下载到板上后,还需要使用STM32 ST-LINK Utility 工具烧写准备好的音频代码,这个音频代码是用工具audacity-win-2.1.3 处理MP3生成的.bin代码。由于FLASH的大小限制,只能截取一段代码,烧写时注意





斜阳__ 发表于 2017-4-10 21:41:43

本帖最后由 斜阳__ 于 2017-4-10 21:48 编辑

好像不错。Mark一下。有个问题楼主没讲解,音频文件(或者数据)在哪儿存放?

wambob 发表于 2017-4-10 21:58:30

斜阳__ 发表于 2017-4-10 21:41
好像不错。Mark一下。有个问题楼主没讲解,音频文件(或者数据)在哪儿存放? ...

音频代码放在MCU的flash里,你搜一下第一行的详细教程

Paderboy 发表于 2017-4-10 22:59:40

赞,:loveliness:

五哥1 发表于 2017-4-11 16:15:53

这个很好呀
页: [1]
查看完整版本: 【NUCLEO-L496ZG评测】+定时器+DAC播放音乐