历史上的今天
今天是:2025年03月24日(星期一)
2019年03月24日 | STM32 USB CDC 驱动问题
2019-03-24 来源:eefocus
问题:
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 来动态分配内存,因为会带来内存碎片,可能会导致程序崩溃,如果实在需要动态内存分配,可以自己写个简单的动态内存管理方法。
史海拾趣
|
电路设计技术与技巧(第二版)国外牛人Tim Williams著 国际电子大侠Tim Williams(蒂姆·威廉斯)著 内容简介 本书较全面和系统地讲述了在实际电子电路设计中常见问题和容易忽视的方方面面, 涵盖了设计产品所需是的全面知识,包括印制电路板布线和接地、有源和无源器件、模拟和数字集成电路、电源、电 ...… 查看全部问答> |
|
WINCE6.0操作系统在三星6410开发板上完美展现!--基于立宇泰ARMSYS6410开发板 精彩测评实例图片说明:1,WINCE6.0系统启动画面(进度条动态显示内核加载进程,LOGO图片可以根据客户需要免费更换);2,WINCE6.0桌面效果;3,800x480液晶屏全屏播放H.264视频流文件(采用硬件解码)4,800x480液晶屏全屏播放MPEG4(avi后缀)音视 ...… 查看全部问答> |
|
本人在一个项目中运用Ecan进行通信,在通信过程中会碰到中断故障(具体原因说不上来)。我是将Ecan设置成中断接收的(邮箱0-15设置成接收邮箱,16邮箱设置成发送邮箱),若接收到一个合理的读写命令,则返回 ...… 查看全部问答> |




