单片机 > 单片机程序设计 > 详情

STM32 USB CDC 驱动问题

发布时间:2021-07-23 发布时间:
|

问题:


STM32的 USB CDC 工程使用STM32Cube 生成,编译下载后,插上USB发现如下图问题:



在设备管理器显示黄色感叹号,驱动不正常。


原因:


由于SMT32 USB 部分的代码用到了 malloc 和  free 这种标准库(#include


解决:


将STM32 工程中的startup_stm32fxxxxx.s 启动文件里的 Heap_Size 改大点,我这里设置Heap_Size为 0x400后,USB工作正常,收发数据OK。



这时PC设备管理器中的 USB CDC设备已经枚举成功,如下图:



建议:


在单片机这种不带MMU的平台上编程时,尽量少用 标准库里的 malloc 来动态分配内存,因为会带来内存碎片,可能会导致程序崩溃,如果实在需要动态内存分配,可以自己写个简单的动态内存管理方法。



关键字:STM32  USB  CDC  驱动问题 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM JTAG 调试原理