[STM32H7] NUCLEO-STM32H7A3测评之WINUSB移植

[复制链接]
4887|7
 楼主| 纪国圣 发表于 2021-6-13 17:11 | 显示全部楼层 |阅读模式
本帖最后由 纪国圣 于 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文件,按如下修改:
1.PNG
3.打开usbd_cdc.c文件,按如下修改:
2.PNG
3.PNG
4.PNG
5.PNG
6.PNG
4.打开usbd_def.h文件,按如下修改:
7.PNG
8.PNG
9.PNG
5.打开usbd_ctlreq.c文件,按如下修改:
10.PNG
11.PNG
12.PNG
13.PNG
14.PNG
6.打开usbd_desc.c文件,按如下修改:
15.PNG
VID和PID可根据需要修改,这里为了和别人的上位机配合,暂且为2020;
16.PNG
17.PNG
18.PNG
19.PNG
20.PNG
21.PNG
22.PNG
7.main.c编写测试程序:
27.PNG
8.编译下载,可用看到WINUSB设备被识别:
23.PNG
24.PNG
25.PNG
如果USB的名称与设置不符,需要在设备管理器中删除设备并刷新设备。
为了测试接收性能,再做回环代码修改:
26.PNG
9.打开上位机,连接USB,效果如下:
26.gif
STM32源代码如下:
STM32H7A3_WINUSB.zip (1.28 MB, 下载次数: 87)
上位机源代码(网友guanglun编写):
guanglunking-WINUSB_PC_Test-master.zip (95.53 KB, 下载次数: 54)
上位机有点大,大家可以百度搜索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不支持这种。 WINUSB.zip (99.2 KB, 下载次数: 24) 有兴趣测个速试试。


 楼主| 纪国圣 发表于 2021-6-19 13:20 | 显示全部楼层

看上位机程序写的怎样了。试过几款上位机,能稳定的不多。
 楼主| 纪国圣 发表于 2021-7-10 08:58 | 显示全部楼层
现修改WINUSB的驱动,使之与ST的驱动库独立。大家只需先生成一个CDC工程,然后删除CDC相关文件,再将USB_DEVICE放入工程中,添加里面的文件,编译下载就可以使用了。 USB_DEVICE.zip (21.79 KB, 下载次数: 45)
STM32H7A3_WINUSB独立库.zip (1.28 MB, 下载次数: 40)

评分

参与人数 1威望 +1 收起 理由
xode + 1 很给力!

查看全部评分

gyh974 发表于 2021-7-12 09:09 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

407

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部