目录

一、Flash地址空间的数据读取

1、Flash简介

2、Flash的硬件实现机制

3、使用到的硬件及软件

4、STM32CubeMX工程配置

5、keil代码

6、STlink调试说明

7、调试

二、基于片内Flash的提示音播放程序

1、使用DAC输出周期2khz的正弦波

2、使用DAC输出数字音频歌曲数据转换为模拟音频波形输出

三、总结

四、参考资料


一、Flash地址空间的数据读取

1、Flash简介

Flash全名叫做Flash Memory,从名字就能看出,是种数据存储设备,存储设备有很多类,Flash属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。

2、Flash的硬件实现机制

Flash的内部存储是MOSFET,里面有个悬浮门(Floating Gate),是真正存储数据的单元。

在Flash之前,紫外线可擦除(uv-erasable)的EPROM,就已经采用了Floating Gate存储数据这一技术了。

典型的Flash内存单元的物理结构

数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的外部门(external gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth来表示,因此,Flash的存储单元的默认值,不是0(其他常见的存储设备,比如硬盘灯,默认值为0),而是1,而如果将电荷释放掉,电压降低到一定程度,表述数字0。

 Flash和普通设备相比所具有的特殊性

3、使用到的硬件及软件

STM32F103C8T6、STlink
软件:Keil、STM32CubeMX

4、STM32CubeMX工程配置

定时器配置

RCC

引脚配置

中断配置

系统时钟树

设置堆栈大小,设置为2k或4k

然后导出

5、keil代码

链接:百度网盘 请输入提取码
提取码:wpsg

将事先准备好的flash.c 及flash.h加入到工程中

如果下载源代码,只需要修改main函数中:

编译无误,进行调试

6、STlink调试说明

事先在电脑上下载好响应的ST-Link驱动

回到Keil下,在魔法棒Option选项卡进行设置
首先是选择调试器,如果使用的是 ST-Link,在 Debug 选项卡中,请选择ST-Link Debugger,如果你使用的是 JLINK,那么需要选择J-LINK/J-Trace Cortex

在选择完调试器之后,点击右边的 Setting 按钮,如果看到以下内容说明连接成功

然后点击红框中的箭头,就可以将程序烧录到stm32中。

注意:使用st-link和keil进行烧录会严格检查stm32型号,如果不是对应的型号烧录会报错。

7、调试

点击仿真调试

View->memory windows->memory 1打开内存观察窗口

View->Watch windows->Watch 1打开一个变量观察窗口,将变量FlashWBuff 和 FlashRBuff加入到 Watch 1 观察窗口

全速运行程序,可以看到数组FlashRBuff中内容与数组FlashWBuff中内容一样了

 在Memory 1窗口中可以看到在FLASH地址0x0800C000区成功写入对应内容。

断电,重新上电后再次调试,程序刚停在main入口处时还可以看到Flash对应区间的内容保持上一次写入内容值。

二、基于片内Flash的提示音播放程序

1、使用DAC输出周期2khz的正弦波

打开软件Adobe Audition

文件—>新建—>音频文件

效果->生成->音调

 文件->导出->设置导出为wav文件

用UltraEdit得到相关数据
用UltraEdit打开刚才保存的wav文件

CTRL+A,接着鼠标右键,选择 十六进制复制选定视图,将内容粘贴到一个新建文件中
在新建文件中,CTRL+A,接着鼠标右键,选择范围输入起始的行号和列号,确定就选中了整个我们需要的内容

可见复制的是11行到59行的数据

复制到notepad++中
Edit编辑->列块编辑->输入0x

这里借用DAC生成正弦波的例程代码

链接:百度网盘 请输入提取码

提取码:706i

将内容复制到keil文件对应的位置,在下图红框中进行替换。

之后,编译下载,看能否观察到正弦波。

2、使用DAC输出数字音频歌曲数据转换为模拟音频波形输出

步骤跟前面差不多,这里不过多赘述

编辑好代码后,烧录,借助音频模块听听看能否还原。

三、总结

通过此次实验对Flash有了一定的了解

四、参考资料

STM32 进阶教程 13 – FLASH的读写操作_张十三的博客-CSDN博客_stm32f103c8t6flash读写

Flash硬件原理 - 轻轻的吻 - 博客园

STM32F103C8T6音频数据的Flash读取与DAC播放相关推荐

  1. 音频数据的Flash读取与DAC播放

    目录 二.Flash地址空间的数据读取 1.flash 2.stm32CubeMX文件创建 3.keil文件配置 4.s-TLINK调试 三.基于片内Flash的提示音播放程序 1.输出2000kHZ ...

  2. STM32 音频数据的Flash读取与DAC播放

    STM32 音频数据的Flash读取与DAC播放 STM32 音频数据的Flash读取与DAC播放 STM32 音频数据的Flash读取与DAC播放 一.题目内容 二.Flash地址空间数据读取 1. ...

  3. 基于 STM32F103C8T6 对音频数据的 Flash 读取与 DAC 播放

    文章内容: STM32F103C8T6 的 Flash 地址空间的数据读取. STM32F103C8T6 自带的 DAC 通道,转换为模拟音频进行播放,并用示波器观察波形,用耳机/喇叭收听,评判音乐还 ...

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

    目录 1 项目准备1.1 具体要求 1.2 项目环境 2 原理简介 2.1 STM32 的内部 FLASH 2.2 STM32 的 DAC 通道2.2.1 何为 DAC 2.2.2 STM32 的 D ...

  5. STM32之音频数据的Flash读取与DAC播放

    文章目录 一. STM32103之内部Flash原理 1. Flash介绍 2. Flash的组成 3. STM32内部框架图 二. SD卡的读写 1. 实验过程 2. 查看hello.txt 3. ...

  6. 音频数据的Flash读取与DAC的播放

    文章目录 一.Flash地址空间的数据读取 1.Flash简介 内部 FLASH 的构成 2.建立工程 3.编辑代码 4.STlink调试仿真 二.基于片内Flash的提示音播放程序 1.使用DAC输 ...

  7. 音频数据的SD/Flash读取与DAC播放

    文章目录 一.简介 1.flash简介 2.DAC简介 二.预备实验 1.问题描述 2.ST-LINK准备 3.Flash地址空间的数据读取 三.基于片内Flash的提示音播放程序 1.使用DAC输出 ...

  8. STM32利用flash读取音频数据读取与DAC播放

    目录 一.博客内容 二.Flash地址空间的读取 2.1 Flash原理 2.2 软.硬件准备 2.3 利用CubeMX建立工程 2.4 工程代码 2.5 ST-Link的使用 ​2.6 仿真调试 三 ...

  9. STM32最小板完成音频数据的读取与DAC播放

    目录 一.Flash简单介绍 1.Flash操作流程与操作选址 1.1.Flash操作流程 1.2 .如何查找并选定要写入Flash十六进制地址 2.Flash读写等相关原理 2.1.闪存的读取 2. ...

最新文章

  1. 字符类型(Java)
  2. perl访问sybase等数据库
  3. MFC中小笔记(三)
  4. 计算机软件水平考试调整,全国计算机等级考试调整方案
  5. [LeetCode] Add Two Numbers
  6. 5 个给 Linux 新手的最佳包管理器
  7. C语言中register类型变量
  8. 《高性能javascript》随笔
  9. 最强社工必备查询网址汇总
  10. Nexus下载失败解决方案
  11. idea设置背景护眼色
  12. xshell查看hdfs文件目录路径_hdfs的shell操作
  13. 对硬盘进行分区时,GPT和MBR有什么区别?
  14. Matlab作图后的各种调整方法——线条、坐标、标题、图例
  15. Android6.0 usb默认MTP模式的修改方法
  16. 简述面向过程与面向过程的思想
  17. 笨方法学python40-42
  18. 总结XSS与CSRF两种跨站攻击
  19. 复现 SSL_Anti-spoofing, 使用 wav2vec 2.0 和数据增强的自动说话人认证的欺骗攻击与深度伪造检测
  20. 【JPG到DWG】图片直转成CAD

热门文章

  1. dnf用什么计算机语言,DNF垫刀与概率学、统计学、计算机语言
  2. 【项目回顾】基于Yanshee的AI服务型机器人(三)
  3. BIM设计师斑马:Revit常用快捷键
  4. 视频直播美颜sdk的发展史
  5. Office2016 PPT中视频或全景(swf)嵌入、交互、播放及相关工具配置方法
  6. 验证phone是否注册微信
  7. 社交平台常用营销工具
  8. macbook bluetooth is not available (蓝牙不可用)
  9. new life。。。
  10. SQL查询即将合同即将到期的员工