关于USB Audio枚举失败的解决方法

本文使用STM32F4 Discovery板

按照网上的教程生成USB Audio驱动,属于历史遗留问题,非常恶心,谷歌也找不到解决办法。

问题描述:使用Cube MX 生成一个Audio Device设备,正常情况应该显示是这样的,STM32 Audio Class或者你自己设置的名字,VID和PID应该也可读出来。但按照目前的网上教程,并不能识别出来USB设备,或者安装驱动设备失败,显示该设备无法启动(代码10),下面一个黄色的感叹号。
关于USB Audio枚举失败的解决方法

关于USB Audio枚举失败的解决方法
看我之前的文章可以确定,使用DSP Concept的源代码就是好的,可以驱动板子和Codec,仔细观察程序也可以看出他们的代码也是由Cube Mx生成的,只是改了部分代码。
在Cube Mx中选择除了作为Audio Device Class,都可以识别出来USB设备,最终确定是由于程序的问题。
关于USB Audio枚举失败的解决方法
通过在循环中添加闪灯,来检测程序是否持续运行,发现当Windows挂载驱动后,会短暂闪灯几秒,在设备管理器中也会显示设备,随后报错(代码10),单步调试后发现当初始化USB设备时出现问题,程序卡死。再仔细研究了DSP Concept和网上教程后发现,2018年前遇到这个问题的大多数是中断问题,和区块设置问题,但这些在教程中都已经解决。遇到这个问题的大多数是2018年以后的开发者,也没有人出来解决一下。
即使设置了这些,仍然会出现感叹号,可以试试下面的办法。

关于USB Audio枚举失败的解决方法

关于USB Audio枚举失败的解决方法

问题解决:新版本的Cube MX(6.x)更新了USB Audio代码,官方自己出现了Bug,而三四年前并没有出现这个问题,但新版本的Cube MX即使手动选择了老的固件包也不行

关于USB Audio枚举失败的解决方法
因此,需要使用老版本的Cube MX,经测试,这一版的CUBE MX一定可以,他支持的最新固件包就为1.21.0
下载地址 https://www.st.com/resource/en/library2/stm32cube_mx_v4270.zip关于USB Audio枚举失败的解决方法
Cube Mx还是很好用的,就是Bug有点多,希望能给同道中人解决问题,不走弯路,如果你解决不了,可以私信我。

Copyright © 2021 by RichardYang. All rights reserved.
仅供参考,严禁转载,感谢。

上一篇:shell编程之重定向


下一篇:李宏毅DLHLP.26.Audio BERT.2/2