纪国圣 发表于 2021-6-13 17:11

NUCLEO-STM32H7A3测评之WINUSB移植

本帖最后由 纪国圣 于 2021-6-13 17:20 编辑

首先说明一下,本帖是基于https://www.cnblogs.com/guanglun/p/12079192.html和https://github.com/596142041/stm32winusb的程序修改而来,只介绍如何通过CubeMX生成的USB CDC修改成WinUSB。WIN8及以上系统无需安装驱动和编写INF文件。1.准备一个由CubeMX生成的可用的USB CDC程序。2.打开usbd_conf.h文件,按如下修改:

3.打开usbd_cdc.c文件,按如下修改:





4.打开usbd_def.h文件,按如下修改:



5.打开usbd_ctlreq.c文件,按如下修改:





6.打开usbd_desc.c文件,按如下修改:

VID和PID可根据需要修改,这里为了和别人的上位机配合,暂且为2020;







7.main.c编写测试程序:

8.编译下载,可用看到WINUSB设备被识别:



如果USB的名称与设置不符,需要在设备管理器中删除设备并刷新设备。
为了测试接收性能,再做回环代码修改:

9.打开上位机,连接USB,效果如下:

STM32源代码如下:

上位机源代码(网友guanglun编写):

上位机有点大,大家可以百度搜索WINSUB_PC_Test_boxed.exe。推荐大家看看开头推荐的网站,对代码的理解会有帮助。


天灵灵地灵灵 发表于 2021-6-15 15:12

没说为何这么修改。。。。

chenqianqian 发表于 2021-6-15 21:00

虚拟串口稳定吗?

纪国圣 发表于 2021-6-19 10:46

天灵灵地灵灵 发表于 2021-6-15 15:12
没说为何这么修改。。。。

可以看看这篇**https://www.amobbs.com/thread-5530162-1-1.html

纪国圣 发表于 2021-6-19 13:13

本帖最后由 纪国圣 于 2021-6-19 21:36 编辑

netjob 发表于 2021-6-19 11:47
楼主,H7的USB 如何才能做到速度可以10MB ,20MB的传输速度的啊。 是USB2.0或者更更强悍的USB3.0啊 ...
H7的USB FS最大传输速率只有12Mbps。要想达到10M/20M,只能使用USB HS+外挂PHY,可以达到480 Mbps的速率。USB3.0就不要想了,STM32不支持这种。有兴趣测个速试试。


纪国圣 发表于 2021-6-19 13:20

chenqianqian 发表于 2021-6-15 21:00
虚拟串口稳定吗?

看上位机程序写的怎样了。试过几款上位机,能稳定的不多。

纪国圣 发表于 2021-7-10 08:58

现修改WINUSB的驱动,使之与ST的驱动库独立。大家只需先生成一个CDC工程,然后删除CDC相关文件,再将USB_DEVICE放入工程中,添加里面的文件,编译下载就可以使用了。

gyh974 发表于 2021-7-12 09:09

谢谢分享
页: [1]
查看完整版本: NUCLEO-STM32H7A3测评之WINUSB移植