stm32f407 usb cdc设备无法启动问题

该博客讲述基于STM32F407实现USB CDC设备项目,用STM32CUBEMX工具生成代码,烧录后出现问题。排除驱动、HAL库版本问题后,发现是堆大小不足,将堆大小从200加大到400,设备恢复正常,建议类似工程适当加大堆栈大小。

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

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

RCC配置:

Sys配置

USB_OTG_FS配置:

USB_DEVICE配置:

时钟配置

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

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值