基于 STM32对音频数据的 Flash 读取与 DAC 播放

本文介绍了基于STM32F103C8T6的音频播放项目,通过Flash存储音频数据,利用内部DAC转换为模拟音频播放。详细讲解了如何将音频数据写入Flash,通过STM32的DAC通道实现音频播放,并提供了从Adobe Audition处理音频到用示波器验证波形的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 项目准备1.1 具体要求

1.2 项目环境

2 原理简介

2.1 STM32 的内部 FLASH

2.2 STM32 的 DAC 通道2.2.1 何为 DAC

2.2.2 STM32 的 DAC 模块

3 Flash 地址空间的数据读取

3.1 利用 CubeMX 创建工程

STLink 连接并烧录

将一段数字音频歌曲数据转换为模拟音频波形输出

5 总结


 

1 项目准备
1.1 具体要求

    Flash 地址空间的数据读取。 STM32F103C8T6 只有 20KB 内存(RAM)供程序代码和数组变量存放,因此,针对内部 Flash 的总计 64KB 存储空间(地址从 0x08000000 开始),运行一次写入 8KB 数据,总计复位运行代码 4 次,将 32KB 数据写入 Flash。并验证写入数据的正确性和读写速率。
    (用cubemx写stm32f103c8t6的内部Flash)

    基于片内 Flash 的提示音播放程序。
    1)实验数据准备:用 Adobe audition 或 goldwave 等音频编辑软件录制“您好欢迎光临!”的几秒钟的声音(8khz 采样、8bit 量化编码的单声道wav格式),确保音频数据尽量小(最大不超 64KB)。然后编程将其分批次写入 STM32F103C8T6 芯片内部 Flash 区域。
    2)数字音频还原播放任务:编程读取此段音频,分别通过 STM32F103C8T6 自带的 DAC 通道,转换为模拟音频进行播放,并用示波器观察波形,用耳机/喇叭收听,评判音乐还原效果;
    提示:
    建议先用单音音频(比如 2000Hz 的正弦波)的 wav 数据进行实验,通过 DAC 或 PCM 音频模块能够基本还原出原始正弦波声音后,再用语音和音乐信号进行实验。

1.2 项目环境

软件准备:

    STM32CubeMX
    Keil 5
    Adobe audition 2022
    UltraEdit
    notepad++

2 原理简介

硬件准备:

    STM32F103C8T6 核心板
    STlink(安装链接:https://pan.baidu.com/s/1XeKTh1VNQo4JapX7HpGjsw 提取码:luha )

2.1 STM32 的内部 FLASH

    在 STM32 芯片内部有一个 FLASH 存储器,它主要用于存储代码,我们在电脑上编写好应用程序后,使用下载器把编译后的代码文件烧录到该内部 FLASH 中,由于 FLASH 存储器的内容在掉电后不会丢失,芯片重新上电复位后,内核可从内部 FLASH 中加载代码并运行。
    STM32 的内部框架图
  

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值