USB -- STM32F103 USB AUDIO(音频)Microphone同步传输(In传输)讲解(八)

本文详细介绍了STM32中USBMicrophone应用的描述符修改,包括设备、配置、接口和字符串,以及关键功能函数如I2S初始化、中断处理和音频同步功能的实现。通过实例代码展示了如何配置设备并解决编译错误,以实现实时音频输入和同步传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

链接快速定位

前沿  

1 描述符修改

1.1 设备描述符修改

1.2 配置描述符修改

1.3 字符串描述符修改

1.4 编译报错修改

2 增加功能函数

2.1 Microphone功能模块介绍

2.2 增加Microphone初始化函数函数

2.3 I2S中断函数修改

2.4 USB复位函数修改

2.5 非零端点函数修改

3 运行演示


链接快速定位

USB -- 初识USB协议(一)

源码下载请参考链接USB -- STM32-FS-USB-Device驱动代码简述(二)

USB -- STM32F103虚拟串口bulk传输讲解(三)

USB -- STM32F103自定义HID设备及HID上位机中断传输讲解(四)

USB -- STM32F103 U盘(MassStorage)SDIO接口SCSI协议Bulk传输讲解(五)

USB -- STM32F103 USB DFU设备固件升级(IAP)控制传输讲解(六)

USB -- STM32F103 USB AUDIO(音频)Speak同步传输(Out传输)讲解(七)

audio数据手册

前沿  

        前面两节主要是对USB的基本概念做了简单讲解,学习USB的最本质目的还是要回到USB的应用方向,接下来的几章主要讲解USB的各类应用,包括:

        这里只讲怎么修改描述符和关键函数,具体的讲解可以查看:USB -- STM32F103 USB AUDIO(音频)Speak同步传输(Out传输)讲解(七)

        我们这里使用《Audio_Speaker》例程进行修改。

1 描述符修改

        usb_desc.h文件的描述符宏定义如下:

#define MICROPHONE_SIZ_DEVICE_DESC                    18
#define MICROPHONE_SIZ_CONFIG_DESC                    109
#define MICROPHONE_SIZ_INTERFACE_DESC_SIZE            9

#define MICROPHONE_SIZ_STRING_LANGID                  0x04
#define MICROPHONE_SIZ_STRING_VENDOR                  0x26
#define MICROPHONE_SIZ_STRING_PRODUCT                 0x22
#define MICROPHONE_SIZ_STRING_SERIAL                  0x1A

#define AUDIO_STANDARD_ENDPOINT_DESC_SIZE             0x09
#define AUDIO_STREAMING_ENDPOINT_DESC_SIZE            0x07
/* USB Descriptor Types */
#define USB_DEVICE_DESCRIPTOR_TYPE                    0x01
#define USB_CONFIGURATION_DESCRIPTOR_TYPE             0x02
#define USB_STRING_DESCRIPTOR_TYPE                    0x03
#define USB_INTERFACE_DESCRIPTOR_TYPE                 0x04
#define USB_ENDPOINT_DESCRIPTOR_TYPE                  0x05

#define USB_DEVICE_CLASS_AUDIO                        0x01
#define AUDIO_SUBCLASS_AUDIOCONTROL                   0x01
#define AUDIO_SUBCLASS_AUDIOSTREAMING                 0x02
#define AUDIO_PROTOCOL_UNDEFINED                      0x00
#define AUDIO_STREAMING_GENERAL                       0x01
#define AUDIO_STREAMING_FORMAT_TYPE                   0x02

/* Audio Descriptor Types */
#define AUDIO_INTERFACE_DESCRIPTOR_TYPE               0x24
#define AUDIO_ENDPOINT_DESCRIPTOR_TYPE                0x25


/* Audio Control Interface Descriptor Subtypes */
#define AUDIO_CONTROL_HEADER                          0x01
#define AUDIO_CONTROL_INPUT_TERMINAL                  0x02
#define AUDIO_CONTROL_OUTPUT_TERMINAL                 0x03
#define AUDIO_CONTROL_FEATURE_UNIT                    0x06

#define AUDIO_INPUT_TERMINAL_DESC_SIZE                0x0C
#define AUDIO_OUTPUT_TERMINAL_DESC_SIZE               0x09
#define AUDIO_STREAMING_INTERFACE_DE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖葫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值