stm32f407 usb cdc设备无法启动问题

时间:2024-03-25 17:28:46

最新要做一个项目,要求基于STM32F407实现USB CDC设备,首先想到的就是直接用STM32CUBEMX工具来生成,OK,话不多说,直接上过程:

RCC配置:

stm32f407 usb cdc设备无法启动问题

Sys配置

stm32f407 usb cdc设备无法启动问题

USB_OTG_FS配置:

stm32f407 usb cdc设备无法启动问题USB_DEVICE配置:

stm32f407 usb cdc设备无法启动问题

时钟配置

stm32f407 usb cdc设备无法启动问题

然后生成代码并编译,烧录后发现设置有点问题:

stm32f407 usb cdc设备无法启动问题

stm32f407 usb cdc设备无法启动问题

出现上面的问题显然是不能正常命使用的,曾以为是驱动的问题,重新去官网下载最新驱动并安装后,结果还是一样,换个开发板工程重新置,也是一样的结果!由是定位为是程序问题,以为是HAL库版本问题,试过用不同的HAL库版本重新生成代码(1.21.0/1.23.0/1.24.0)最后结果还是一样!!排除了库版本的问题,重新回来软件工程醒配置,查看堆和栈的大小,如下图:

stm32f407 usb cdc设备无法启动问题

从上面的醒配置来看桟的大小应该是够了,但堆有点好,试着加大一下堆的大小,从200变成400后重新生成代码,烧录后看效果:

stm32f407 usb cdc设备无法启动问题

此时设备已变成正常,OK问题解决!!通过上面的例子,我们可以在类似的工程中适当加大一下堆桟的大小!!