STM32,使用USB VCP功能,即虚拟串口功能时,选择USB_OTG_FS Device_Only,如上图。cube自动生成工程,不作修改。将USB插入电脑,WIN10或WIN7系统设备管理器中端口项中都能成功出现STMicroelecronics Virtual COM Port(COM4),但驱动前显示黄色叹号,表示设备安装存在问题的警告。
问题:
usbd_cdc.c文件中,USBD_CDC_Init函数中存在一个USBD_malloc,可在此打断点调试,pdev->pClassData为NULL。可知malloc并没有申请到空间。
解决方法:
malloc没有申请到空间,并不是USBD_malloc函数有问题,而是系统设置堆空间过小,申请空间大于堆空间,所以无法申请成功。只需要将startup_stm32f429xx.s系统启动文件里的Heap_Size EQU 0x200 值高大就可以了
STM32 USB VCP驱动问题解决
本文介绍了一个STM32使用USB VCP功能时遇到的问题:在WIN10或WIN7系统下,虽然虚拟串口能被识别,但因驱动警告而无法正常工作。文章详细分析了问题原因——系统堆空间不足导致内存分配失败,并给出了增加堆空间大小的解决方案。
588

被折叠的 条评论
为什么被折叠?



