matlab pdm转pcm_STM32F407 PDM转PCM问题
代码如下:
#include "sph0644.h"
#include "pdm_filter.h"
#define INTERNEL_BUFF_SIZE 64
#define PCM_OUT_SIZE 16
PDMFilter_InitStruct Filter;
u16 PDM_Output_Buffer[PCM_OUT_SIZE];
u16 *pAudioRecBuf;
u16 InternalBuffer[INTERNEL_BUFF_SIZE];
u16 InternalBufferSize = 0;
static void Sph0644_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_AHB1PeriphClockCmd(SPI_SCK_GPIO_CLK|SPI_MOSI_GPIO_CLK, ENABLE);//ʹÄÜÍâÉèGPIOB,GPIOCʱÖÓ
GPIO_InitStructure.GPIO_Pin = SPI_SCK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//¸´Óù¦ÄÜ
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//ÍÆÍì
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//ÉÏÀ
GPIO_Init(SPI_SCK_GPIO_PORT, &GPIO_InitStructure);//³õʼ»¯
GPIO_InitStructure.GPIO_Pin =SPI_MOSI_PIN;
GPIO_Init(SPI_MOSI_GPIO_PORT, &GPIO_InitStructure);//³õʼ»¯
GPIO_PinAFConfig(SPI_SCK_GPIO_PORT,SPI_SCK_SOURCE,SPI_SCK_AF); //PB13,AF5 I2S_SCLK
GPIO_PinAFConfig(SPI_MOSI_GPIO_PORT,SPI_MOSI_SOURCE,SPI_MOSI_AF); //PC3 ,AF5 I2S_DACDATA
I2S2_Init(I2S_Standard_LSB,I2S_Mode_MasterRx,I2S_CPOL_High,I2S_DataFormat_16b);
I2S2_SampleRate_Set(32000); //ÉèÖòÉÑùÂÊ
// Configure the SPI interrupt priority
NVIC_InitStructure.NVIC_IRQChannel = SPI2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 6;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
SPI_I2S_ITConfig(SPI2,SPI_I2S_IT_RXNE,ENABLE);
}
void Sph0644_Init(void)
{
//Enable CRC module/*
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
//ÅäÖÃI2S2£¬CLKƵÂÊ1024MHz
Sph0644_Config();
//16KHz,ÔÚ´Ë֮ǰ£¬±ØÐ뿪ÆôCRCʱÖÓ£¬·ñÔò½øÈëËÀÑ»·
Filter.LP_HZ = 8000;
Filter.HP_HZ = 10;
Filter.Fs = 16000;
Filter.Out_MicChannels = 1;
Filter.In_MicChannels = 1;
PDM_Filter_Init(&Filter);
}
void Sph0644_Start(void)
{
pAudioRecBuf = PDM_Output_Buffer;
I2S_Cmd(SPI2,ENABLE);
}
void Sph0644_Stop(void)
{
I2S_Cmd(SPI2,DISABLE);
}
void SPI2_IRQHandler(void)
{
u16 app;
u16 volume;
if(SPI_GetITStatus(SPI2,SPI_I2S_IT_RXNE) == SET)
{
app = SPI_I2S_ReceiveData(SPI2);
InternalBuffer[InternalBufferSize++] = HTONS(app);
if(InternalBufferSize >= INTERNEL_BUFF_SIZE)
{
InternalBufferSize = 0;
volume = 50;
PDM_Filter_64_LSB((u8*)InternalBuffer,pAudioRecBuf,volume,&Filter);
}
}
}
matlab pdm转pcm_STM32F407 PDM转PCM问题相关推荐
- STM32 USB AUDIO 基础篇③——模拟MIC、ECM数字麦克风、MEMS数字麦克风、PDM、PCM的简介与差异
文章目录 一.模拟麦克风.ECM数字麦克风.MEMS数字麦克风 1.1 模拟麦克风 1.2 ECM数字麦克风 1.3 MEMS数字麦克风 二.PCM和PDM信号 2.1 脉冲编码调制PCM信号 2.2 ...
- 硅麦驱动开发及调试(pdm>>I2S>>pcm)
pdm 协议 PDM接口只有两根信号线: PDM_CLK 时钟信号. PDM_DATA 数据信号. I2S协议 数据发送规格 I2S在BCLK的下降沿发送数据(发送),在上升沿进行数据采样(接收).每 ...
- 数字音频接口(I2S,PCM/TDM,PDM)
概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式.相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在 ...
- micropython i2s_数字音频接口(I2S,PCM/TDM,PDM)
概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式.相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在 ...
- 【精华贴】数字音频接口详解-I2S接口PCM/TDM接口PDM接口
一.概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式.相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DA ...
- 常用音频接口:TDM,PDM,I2S,PCM
折腾: [整理]SoC CPU MEDIATEK MT8516详解 期间,看到T8516介绍中包含 麦克风语音输入控制和连接的音频产品中包含 I2Sx2(4 个频道).TDM(最多 8 个频道)和 P ...
- 数字麦克风PDM信号采集与STM32 I2S接口应用(二)
在使用STM32的数字麦克风I2S接口时,计算采样率让人头疼,芯片手册上没有明确的说法,而手册上的计算方法经过测试却和实验不符.借助搜索引擎,大部分资料都是来自于开发板卖家或开发板论坛,主要是咪头采集 ...
- MEMS mic之PDM mic(二)
概述 PDM = Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法. PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1.因此 ...
- 使用STM32的DFSDM外设来驱动PDM麦克风进行音频采集
0.前言 最近需要使用STM32L4系列来完成音频采集的工作,前前后后一共尝试了三种方案,最终在各种测试条件以及功耗等原因下,选择了目前这个方案. 主控使用的是STM32L475RCT6(无需一致,只 ...
最新文章
- Codemirror-开源在线代码编辑器
- 卡特兰数(Catalan number)
- Linxu嵌入式汇编语言
- Telerik RadGridView动态增删行及行列操作
- 深度学习到底有多难?掌握方法很重要!
- Codeforces 1196E Connected Component on a Chessboard
- api与密度转换公式_API重度和密度换算公式
- java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文
- 主存储器物理地址,逻辑地址,转换
- Redis进阶-缓存问题
- 4399元!苹果2020年终极新品上市就遇麻烦:付款3个月才能到货
- [转摘]使用异步方式调用同步方法
- 大三寒假--算法复习
- word批量转换为pdf python脚本
- Accumulator Proof解析
- android inflate 耗时,Android Fragment的生命周期和Inflate优化
- Python爬虫的应用:统记词频
- 华硕主板装系统蓝屏_华硕主板电脑怎么重装系统,开机过后蓝屏怎么解决
- ssm私人牙科诊所病例管理系统的设计与实现毕业设计源码071128
- 友盟登陆 QQ授权2002 应用未授权