求救,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条回答
冬日花树
1楼-- · 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 */
这样倒是可以工作了
xuande
2楼-- · 2019-07-21 06:44

没做过HS,
但这情况应当就是PC端驱动的问题,缺少文件。。。

zmingwang
3楼-- · 2019-07-21 09:47
 精彩回答 2  元偷偷看……
冬日花树
4楼-- · 2019-07-21 14:55
zmingwang 发表于 2016-6-1 15:24
USB虚拟串口可以参考下圈圈的USB教程,说得很细,应该对你有帮助.

谢谢,我去看看
冬日花树
5楼-- · 2019-07-21 19:48
xuande 发表于 2016-6-1 15:21
没做过HS,
但这情况应当就是PC端驱动的问题,缺少文件。。。

它其实是用了内部的全速物理芯片,也没接外部芯片。F429开发板的例程有个是USB读卡器倒是可以运行的。
冬日花树
6楼-- · 2019-07-21 23:09
另外如果手动安装驱动的话会出现下图情况:
捕获1.PNG

一周热门 更多>