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

目录

一、FLASH的读写操作

1、CubeMX工程

2、Keil代码如下

 3、STlink调试

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

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

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

三、总结

四、参考资料


FLASH 存储器又称为闪存,它也是可重复擦写的储器,部分书籍会把 FLASH 存储器 称为 FLASH ROM,但它的容量一般比 EEPROM大得多,且在擦除时,一般以多个字节为 单位。如有的 FLASH 存储器以 4096 个字节为扇区,最小的擦除单位为一个扇区。根据存 储单元电路的不同,FLASH存储器又分为 NOR FLASH 和 NAND FLASH,见表 23-2。 


表 23-2 NOR FLASH 与 NAND FLASH 特性对比 特性 NOR FLASH NAND FLASH 同容量存储器成本 较贵 较便宜 集成度 较低 较高 介质类型 随机存储 连续存储 地址线和数据线 独立分开 共用 擦除单元 以“扇区/块”擦除 以“扇区/块”擦除 读写单元 可以基于字节读写 必须以“块”为单位读写 读取速度 较高 较低 写入速度 较低 较高 坏块 较少 较多 是否支持 XIP 支持 不支持 NOR与NAND的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区 /块”为单位的。而 NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分 开导致的。 

由于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译 码执行要求,所以假如NOR上存储了代码指令,CPU给 NOR一个地址,NOR就能向 CPU 返回一个数据让 CPU执行,中间不需要额外的处理操作。 而由于 NAND的数据和地址线共用,只能按“块”来读写数据,假如NAND上存储了 代码指令,CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要 求。表 23-2 中的最后一项“是否支持 XIP”描述的就是这种立即执行的特性(eXecute In Place)。 若代码存储在 NAND 上,可以把它先加载到 RAM存储器上,再由 CPU 执行。所以在 功能上可以认为NOR是一种断电后数据不丢失的RAM,但它的擦除单位与RAM有区别, 且读写速度比 RAM要慢得多。 另外,FLASH 的擦除次数都是有限的(现在普遍是 10 万次左右),当它的使用接近寿命 的时候,可能会出现写操作失败。由于 NAND 通常是整块擦写,块内有一位失效整个块就 会失效,这被称为坏块,而且由于擦写过程复杂,从整体来说 NOR块块更少,寿命更长。 由于可能存在坏块,所以 FLASH 存储器需要“探测/错误更正(EDC/ECC)”算法来确保数 据的正确性。 由于两种 FLASH 存储器特性的差异,NOR FLASH 一般应用在代码存储的场合,如嵌 入式控制器内部的程序存储空间。而NAND FLASH一般应用在大数据量存储的场合,包括 SD 卡、U盘以及固态硬盘等,都是 NAND FLASH类型的。

1.DAC控制寄存器(DAC_CR)

2.DAC软件触发寄存器(DAC_SWTRIGR)

  

3.DAC通道 1 的 12 位右对齐数据保持寄存器(DAC_DHR12R1)

4. DAC通道 1 的 12 位左对齐数据保持寄存器(DAC_DHR12L1)

5.DAC通道 1 的 8 位右对齐数据保持寄存器(DAC_DHR8R1)

6.DAC通道 1 数据输出寄存器(DAC_DOR1)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值