音频文件写入STM32的FLASH并通过DAC播放

一、写入文件进入STM32FLASH

1.通过STM32Cube配置工程

选择芯片类型为STM32F103C8T6(根据自己情况进行选择),然后进行配置

  • SYS配置
    在这里插入图片描述

  • RCC配置
    在这里插入图片描述

  • GPIO配置
    在这里插入图片描述
    在生成工程前可以将最小栈区大小修改大一点
    在这里插入图片描述
    配置完成后点击生成工程即可

2.添加工程文件、修改代码

  • 添加flash.h文件
    添加到对于的文件夹中在这里插入图片描述

  • 在main函数中将头文件includ进去
    在这里插入图片描述

  • 修改main函数中代码
    在这里插入图片描述

3.编译调试

编译没有错误后接入硬件进行调试
在这里插入图片描述

  • 硬件ST-Link接线
    在接线前还需要下载ST-Link的驱动
ST-LINKSTM32
SWCLK/TCKSWCLK/TCK
SWDIO/TMSSWDIO/TMS
GNDGND
VCCVCC
  • Debug设置
    选择ST-Link Debugger在这里插入图片描述
    然后点击Setting进行设置,如下图配置
    在这里插入图片描述

  • 下载程序
    配置完成后直接点击图标通过ST-Link进行下载即可
    在这里插入图片描述

4.分析运行结果

为了确保以及更方便的观察FLASH内存的变换,我们通过Debug运行测试
先点击放大镜进入Debug
在这里插入图片描述
然后依次点击View->memory windows->memory 1打开内存观察窗口
在这里插入图片描述
在这里插入图片描述
然后点击View->Watch windows->Watch 1打开一个变量观察窗口,将变量FlashWBuff 和 FlashRBuff加入到 Watch 1 观察窗口
在这里插入图片描述
完毕后按F5全速运行,数组FlashRBuff与数组FlashWBuff中的内容一致了,说明成功进行了读取与写入
在这里插入图片描述

二、STM32片内FLASH的DAC通道播放WAV文件

1.通过Adobe Audition软件生成WAV音频文件

  • 先建立一个正弦波信号的文件
    在这里插入图片描述

  • 设置参数
    依次点击效果->生成->音调进行设置
    在这里插入图片描述

  • 导出为wav文件
    在这里插入图片描述

2.通过UltraEdit更改音频文件内容格式

通过之前步骤以及生成了正弦波信号,并保存为wav文件,在这基础上金一步操作

  • 通过UltraEdit软件打开wav文件
    在这里插入图片描述
  • 将内容更换为十六进制试图
    在这里插入图片描述

3.添加到工程文件中

按下ctrl+A键对内容进行全选,然后右键点击选择十六进制复制选定视图

  • 修改格式
    替换完成内容后,修改内容的格式,在前面加上0x、然后用“,”将其隔开,如图所示
    在这里插入图片描述
  • 添加到对应位置
    最后,将复制的任意段落的32个数放入到函数u16 Sine12bit[32]当中

4.通过模拟音频模块进行播放

编译没有错误即可,然后烧录

  • 连接音频模块并用喇叭播放试听
    由于没有音频播放模块,所以此步先省略掉

  • 播放音乐也是一样的操作,先将音乐文件转换为wav格式,然后通过UE进行改写,再放入代码中

三、总结

通过此此实验了解了如何通过STM32的DAC通过进行音频文件的播放以及如何将数据写入片内FLASH当中,由于FLASH的内存非常有限,所以写入的时候需要分批次写入进去。

四、参考资料

【嵌入式22】STM32F1C8T6音频数据的Flash读取与DAC播放
STM32 进阶教程 13 – FLASH的读写操作

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值