硬件——STM32 , 录音

参考的<<STM32开发指南V1.0库函数版本>>

ALIENTEK 战舰 STM32 开发板板载的 VS1053 (这是一个语音芯片)支持 2 种格式的 WAV 录音:

PCM 格式或者 IMA ADPCM 格式, 其中 PCM(脉冲编码调制) 是最基本的 WAVE 文件格式,这种文件直
接存储采样的声音数据没有经过任何的压缩。而 IAM ADPCM 则是使用了压缩算法,压缩比率
为 4:1
.

本章,我们主要讨论 PCM,因为这个最简单。我们将利用 VS1053 实现 16 位, 8Khz 采
样率的单声道 WAV 录音(PCM 格式)。要想实现 WAV 录音得先了解一下 WAV 文件的格式,
WAVE 文件是由若干个 Chunk 组成的。按照在文件中的出现位置包括: RIFF WAVE Chunk、
Format Chunk、 Fact Chunk(可选)和 Data Chunk。每个 Chunk 由块标识符、数据大小和数
据三部分组成,如图 50.1.1 所示:

上图是每个chunk块都要遵守的结构.

其中块标识符由 4 个 ASCII 码构成,数据大小则标出紧跟其后的数据的长度(单位为字节),
注意这个长度不包含块标识符和数据大小的长度,即不包含最前面的 8 个字节。所以实际 Chunk
的大小为数据大小加 8。

通过以上学习,我们对 WAVE 文件有了个大概了解。接下来,我们看看如何使用 VS1053

实现 WAV(PCM 格式)录音。

原文地址:https://www.cnblogs.com/chulin/p/8022036.html

时间: 2024-08-07 03:05:03

硬件——STM32 , 录音的相关文章

硬件——STM32,ADC篇

未完,待续...... 关于程序的编写方法:一般  "某某.c文件":都是用来设置"某某"的一些参数,在初始化函数里:还有就是"某某"的一些动作,比如小灯的亮灭. "某某.h文件":都是与.c文件配对的,主要是包含"某某.c"文件中的变量名和函数名. 这样一来程序中所有的功能被拆分成块,如:显示用的屏幕部分,输入用的按键部分,采集数据用的传感器部分······ 并把每个部分都变成了成对的.h和.c文件:实际

硬件——STM32 , 软件框架

单片机应用程序的框架大概有三种: 1,简单的前后台顺序执行程序. 2,时间片轮询法. 3,应用操作系统. 下面我们主要来讲解时间片轮询法: 在这里我们先介绍一下定时器的复用功能.就是使用1个定时器,可以是任意的定时器,这里不做特殊说明,下面假设有3个任务,那么我们应该做如下工作: 1. 初始化定时器,这里假设定时器的定时中断为1ms(当然你可以改成10ms,这个和操作系统一样,中断过于频繁效率就低,中断太长,实时性差). 2. 定义一个数值: #define TASK_NUM   (3)    

关于STM32单片机的IAP实现

基于STM32F103单片机的IAP实现(虽然该篇文章不会详细写出实现细节,但是会从一个全局的角度讲述,实际的实现细节只需根据datasheet即可完成). 一.基础概念 什么是IAP?IAP即在应用中编程(In-Application Programming IAP),简单的说就像是一个用户自定义的升级程序.实际上,STM32单片机的程序烧写有多种方法,可以用JTAG,也可用串口通过ISP软件烧写新程序. JTAG的方式需要专用的烧写工具,在产品布置到现场后,更新产品程序比较麻烦,而通过串口的

在Android5.0上Audio Patch和Patch Panel的一些分析

好久没写博客了,最近整理了下画的流程图和描述图,这次是关于Android5.0里新加的Patch Panel,使用了Audio Patch机制来实现的,正所谓有图有真相,具体请看图. Patch Panel的路径:frameworks/av/services/audioflinger/PatchPanel.cpp Patch Panel有关的结构: 一个Audio Patch用来表示一个或多个source端到一个或多个sink端.这个是从代码的注释翻译来的,大家可以把它比作大坝,可以有好几个入水

STM32的硬件CRC32使用

最近用到STM32的CRC32模块,看一下官网的Lib,感觉用起来十分简单.但是,你会发现直接使用起来会出现,与很多在线CRC32的网站或者PC端的CRC32校验工具计算结果不一致! 简直就是无语...... 搜索了一下,在21IC的论坛上面有关使用STM32的CRC32的大讨论,不过是09年的帖子.主要定论是STM32的CRC32与目前大多数的PC端软件使用的一些数据顺序及方法不一致.这里主要推荐看一下这个链接: STM32内置CRC模块的使用 讨论的很火. 如果真如,那帖子说的那样.那么作为

STM32硬件调试详解

STM32的基本系统主要涉及下面几个部分: 一.电源 1).无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA.VSSA.Vref(如果封装有该引脚)都必需要连接,不可悬空: 2).对于每组对应的VDD和GND都应至少放置一个104的陶瓷电容用于滤波,并接该电容应放置尽量靠近MCU: 3).用万用表测试供电电压是否正确.调试时最好用数字电源供电,以便过压或过流烧坏板子.电压最好一步一步从进线端测试到芯片供电端. 二.复位.启动选择 1).Boot引脚与JTAG无关.其仅是用于

STM32 下 FatFs的移植,实现了擦写均衡,坏块管理,硬件 ECC,ECC纠错

最近因项目需要,做一个数据采集的单片机平台.需要移植 FatFs .现在把最后成果贴上来. 在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 K9F2G08 . 特点: 系统配合 FatFs 实现了擦写均衡,坏块管理,硬件ECC,软件 ECC 纠错 文件组成: FatFs 目录 +---- ffconf.h 对 FatFs 进行配置的文件 +---- ff.h +---- ff.c 是 FatFs 的实现文件,擦写均衡 在 f_getfree 函数

STM32 硬件I2C 到底是不是个坑?

/** ****************************************************************************** * @author    Maoxiao Hu * @version   V1.0.0 * @date       May-2015 ****************************************************************************** * < COPYRIGHT 2015 IS

【安富莱专题教程第1期】基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24

说明:1. 首先感谢ST终于推出了ARGB格式的emWin库,可谓千呼万唤始出来,使用STM32的硬件RGB888接口刷新图片慢的问题终于得到解决.2. 这个问题由来已久,是之前为我们的STM32-V6板子制作emWin模板时发现的.V6板子的硬件配置是STM32F429BIT6 + 32位带宽的SDRAM + 硬件RGB888接口.实际测试中发现,将F429配置为16位色的RGB565,刷新800*480分辨率的图片可以做到15ms左右一帧,而测试24位色的RGB888或者32位色的ARGB8