【STEVAL-STWINKT1B评测】音频采集
本文介绍了 STEVAL-STWINKT1B 开发套件结合官方 Demo 示例程序,实现板载麦克风实时采集环境声音频谱的项目设计,包括工程获取、关键代码、编译固件、调试上传、效果演示等流程。
项目介绍
STEVAL-STWINKT1B 开发套件结合板载麦克风传感器,实现环境音频采集;
- 工程获取:从开发板官网获取 Demo 示例项目源码,使用 STM32CubeIDE 加载项目;
- 工程代码:展开主程序代码,并给出对应的代码流程图;
- 构建上传:编译和构建工程,连接开发板并实现调试和固件上传;
- 效果演示:连接板载 USB 虚拟串口,连续打印传感器数据。
Demo 简介
OnBoardMics 应用程序通过USB发送模拟和数字麦克风采集的音频信号,可在主机上录制。
开发板被识别为立体声USB麦克风,可使用录音软件在主机设备上录制音频信号。
项目方案
包括获取示例工程源码、加载和编译工程、工程代码、固件上传、效果演示等。
获取工程

加载工程
工程代码
打开 ./Application/User/main.c 文件,

关键代码如下
#include "cube_hal.h"
USBD_HandleTypeDef hUSBDDevice;
extern USBD_AUDIO_ItfTypeDef USBD_AUDIO_fops;
SAI_HandleTypeDef SaiHandle;
DMA_HandleTypeDef hSaiDma;
int main(void)
{
/* STM32F4xx HAL library initialization:
- Configure the Flash prefetch, instruction and Data caches
- Configure the Systick to generate an interrupt each 1 msec
- Global MSP (MCU Support Package) initialization
*/
HAL_Init();
/* Enable Power Clock*/
__HAL_RCC_PWR_CLK_ENABLE();
/* enable USB power on Pwrctrl CR2 register */
HAL_PWREx_EnableVddUSB();
/* Configure the system clock */
SystemClock_Config();
BSP_LED_Init(LED2);
BSP_LED_Off(LED2);
BSP_LED_Init(LED1);
BSP_LED_Off(LED1);
/* Initialize USB descriptor basing on channels number and sampling frequency */
USBD_AUDIO_Init_Microphone_Descriptor(&hUSBDDevice, AUDIO_IN_SAMPLING_FREQUENCY, AUDIO_IN_CHANNELS);
/* Init Device Library */
USBD_Init(&hUSBDDevice, &AUDIO_Desc, 0);
/* Add Supported Class */
USBD_RegisterClass(&hUSBDDevice, &USBD_AUDIO);
/* Add Interface callbacks for AUDIO Class */
USBD_AUDIO_RegisterInterface(&hUSBDDevice, &USBD_AUDIO_fops);
/* Start Device Process */
USBD_Start(&hUSBDDevice);
/* Start audio acquisition and streaming */
#ifdef DISABLE_USB_DRIVEN_ACQUISITION
Init_Acquisition_Peripherals(AUDIO_IN_SAMPLING_FREQUENCY, ACTIVE_MICROPHONES_MASK, AUDIO_IN_CHANNELS);
Start_Acquisition();
#endif
while (1)
{
}
}
保存代码。
编译上传
构建工程、编译项目、调试和固件上传。
构建工程
- 右键项目,选择构建工程,或点击菜单栏 小锤子 图标,执行后无报错;

硬件连接
- 使用 Micro-USB 数据线连接开发板,使用 Type-C 数据线连接 STLINK-V3 MINIE 板;

固件上传
右键项目,选择调试工程 - 调试配置,双击 STM32 C/C++ Application 生成 Debug 配置;

- 点击 Debug 按钮,进入调试界面;
- 点击菜单栏的启动按键,进入调试状态,此时固件已上传,程序开始运行;

效果演示
- 使用 Micro-USB 数据线连接开发板对应接口和电脑;
- 系统自动弹窗显示新增的音频设备;
- 打开弹窗进入设置,设备,蓝牙和其他设备,发现
STM32 AUDIO Streaming in FS Mode 设备,即麦克风;

- 打开设备管理器,展开音频输入选项,显示音频输入设备

音频采集
使用专业的音频采集和处理软件,这里使用 ocenaudio 软件。
- 下载并安装 ocenaudio 软件;
- 运行软件,依次选择菜单栏的
控制 - 录音配置 选项,选择 STM32 Audio 为录音设备;

- 点击工具栏的 开始 按钮,启动录音动作,频谱开始显示环境声音曲线;
- 执行鼓掌、咳嗽等动作,记录波形如下

咳嗽的音频波形如下

总结
本文介绍了 STEVAL-STWINKT1B 开发套件结合官方 Demo 示例程序,实现板载麦克风实时采集环境声音频谱的项目设计,包括工程获取、关键代码、编译固件、调试上传、效果演示等流程,为相关产品的快速开发和应用设计提供了参考。 |