求救,STM32F429移植USB VCP类出现的问题

2019-07-20 21:49发布

最近在搞USB虚拟串口,我将ST的usb官方库 STM32_USB-Host-Device_Lib_V2.1.0 中的VCP类移植到STM32F429的开发板上,编译下载正常,连上USB后出现了下面的现象
捕获.PNG
设备管理器中有一个叹号,显示无法启动,串口助手无法打开。
USB是采用高速模式,使用内部PHY芯片。在同一台电脑上用探索者F407的开发板试过,设备管理器显示运行正常,且可以用串口助手打开,所以应该不是驱动的问题。
请各位大牛看看,若有遇到过这种问题,请提出帮助,万分感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
冬日花树
2019-07-21 01:26
解决了,虽然还是稀里糊涂,在usbd_conf.h文件中,将USB HS模式下的参数改成和USB FS模式下的参数一致(原值被屏蔽到注释中)
/* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */
#ifdef USE_USB_OTG_HS
#define CDC_DATA_MAX_PACKET_SIZE       64        //512  /* Endpoint IN & OUT Packet size */
#define CDC_CMD_PACKET_SZE             8    /* Control Endpoint Packet size */

#define CDC_IN_FRAME_INTERVAL          5                //40   /* Number of micro-frames between IN transfers */
#define APP_RX_DATA_SIZE               2048 /* Total size of IN buffer:
                                                APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL*8 */
#else
#define CDC_DATA_MAX_PACKET_SIZE       64   /* Endpoint IN & OUT Packet size */
#define CDC_CMD_PACKET_SZE             8    /* Control Endpoint Packet size */

#define CDC_IN_FRAME_INTERVAL          5    /* Number of frames between IN transfers */
#define APP_RX_DATA_SIZE               2048 /* Total size of IN buffer:
                                                APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL */
#endif /* USE_USB_OTG_HS */
这样倒是可以工作了

一周热门 更多>