久久精品国产精品国产一区,少妇扒开毛毛自慰喷水,国产精品无码电影在线观看 ,久久天天躁夜夜躁狠狠85麻豆

思澈科技軟件開發(fā)工具包  2.20
PDM

PDM (Pulse Density Modulation)模塊是用于將外部pdm麥克風(fēng)輸出的pdm信號進(jìn)行濾波轉(zhuǎn)化為PCM信號并提供給CPU進(jìn)行后續(xù)的處理.

支持的配置

  • 單聲道(左/右), 立體聲
  • 采樣率 8/12/16//24/32/48KHz
  • 24bit 采樣深度
  • 左右聲道 增益調(diào)節(jié)
  • 循環(huán)buffer/ 單次buffer

輸出數(shù)據(jù)格式

  • 8bit + 單聲道
  • 16bit + 單聲道
  • 32bit + 單聲道 : 高8位為0, 實(shí)際有效數(shù)據(jù)為低24bit
  • 16bit + 雙聲道 : 左右聲道各占16bit組成一個(gè)32bit數(shù)據(jù)(支持左右聲道對換)
  • 32bit + 雙聲道 : 僅支持左右聲道分開2個(gè)buffer存儲

示例

PDM1單聲道16KHz , 16bit位深,用DMA讀取1024字節(jié)數(shù)據(jù)

static PDM_HandleTypeDef PDM_Handle = {0};
static DMA_HandleTypeDef DMA_Handle = {0};
static uint32_t DMA_cplt_flag = 0;
void DMAC1_CH3_IRQHandler(void)
{
}
{
if(hpdm == &PDM_Handle)
DMA_cplt_flag = 1;
}
void pdm_recieve(void)
{
DMA_Handle.Instance = DMA1_Channel3;
DMA_Handle.Init.Request = DMA_REQUEST_18;
PDM_Handle.hdmarx = &DMA_Handle;
PDM_Handle.Instance = hwp_pdm1;
PDM_Handle.Init.Mode = PDM_MODE_LOOP; //Ring buffer mode
PDM_Handle.RxXferSize = 1024;
PDM_Handle.pRxBuffPtr = (uint8_t *) 0x2000c000;
HAL_PDM_Init(&PDM_Handle);
HAL_NVIC_EnableIRQ(DMAC1_CH3_IRQn);
HAL_PDM_Receive_DMA(&PDM_Handle, PDM_Handle.pRxBuffPtr, PDM_Handle.RxXferSize);
while(DMA_cplt_flag == 0);
HAL_NVIC_DisableIRQ(DMAC1_CH3_IRQn);
HAL_PDM_DMAStop(&PDM_Handle);
HAL_PDM_DeInit(&PDM_Handle);
}
...
PDM_InitTypeDef::ChannelDepth
uint32_t ChannelDepth
Definition: bf0_hal_pdm.h:161
HAL_PDM_DMAStop
HAL_StatusTypeDef HAL_PDM_DMAStop(PDM_HandleTypeDef *hpdm)
Stop the DMA Transfer.
PDM_HandleTypeDef::RxXferSize
uint16_t RxXferSize
Definition: bf0_hal_pdm.h:179
DMA_InitTypeDef::Request
uint32_t Request
Definition: bf0_hal_dma.h:85
PDM_HandleTypeDef
Definition: bf0_hal_pdm.h:172
PDM_HandleTypeDef::hdmarx
DMA_HandleTypeDef * hdmarx
Definition: bf0_hal_pdm.h:181
PDM_HandleTypeDef::pRxBuffPtr
uint8_t * pRxBuffPtr
Definition: bf0_hal_pdm.h:177
PDM_CHANNEL_DEPTH_16BIT
@ PDM_CHANNEL_DEPTH_16BIT
Definition: bf0_hal_pdm.h:136
__DMA_HandleTypeDef::Init
DMA_InitTypeDef Init
Definition: bf0_hal_dma.h:159
HAL_PDM_Init
HAL_StatusTypeDef HAL_PDM_Init(PDM_HandleTypeDef *hpdm)
Initialize the PDM according to the specified parameters in the PDM_InitTypeDef and initialize the as...
PDM_HandleTypeDef::Init
PDM_InitTypeDef Init
Definition: bf0_hal_pdm.h:175
PDM_CHANNEL_LEFT_ONLY
@ PDM_CHANNEL_LEFT_ONLY
Definition: bf0_hal_pdm.h:115
HAL_PDM_RxCpltCallback
void HAL_PDM_RxCpltCallback(PDM_HandleTypeDef *hpdm)
Rx Transfer completed callback.
HAL_PDM_Receive_DMA
HAL_StatusTypeDef HAL_PDM_Receive_DMA(PDM_HandleTypeDef *hpdm, uint8_t *pData, uint32_t Size)
Read PCM data from PDM module by DMA.
__DMA_HandleTypeDef
DMA handle Structure definition.
Definition: bf0_hal_dma.h:156
PDM_SAMPLE_16KHZ
@ PDM_SAMPLE_16KHZ
Definition: bf0_hal_pdm.h:126
__DMA_HandleTypeDef::Instance
DMA_Channel_TypeDef * Instance
Definition: bf0_hal_dma.h:157
PDM_InitTypeDef::Channels
uint32_t Channels
Definition: bf0_hal_pdm.h:155
HAL_DMA_IRQHandler
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
Handle DMA interrupt request.
PDM_MODE_LOOP
@ PDM_MODE_LOOP
Definition: bf0_hal_pdm.h:109
HAL_NVIC_EnableIRQ
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
Enable a device specific interrupt in the NVIC interrupt controller.
PDM_InitTypeDef::SampleRate
uint32_t SampleRate
Definition: bf0_hal_pdm.h:158
HAL_NVIC_DisableIRQ
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
Disable a device specific interrupt in the NVIC interrupt controller.
PDM_InitTypeDef::Mode
uint32_t Mode
Definition: bf0_hal_pdm.h:152
HAL_PDM_DeInit
HAL_StatusTypeDef HAL_PDM_DeInit(PDM_HandleTypeDef *hpdm)
DeInitialize the PDM peripheral.