打印
[STM32H7]

NUCLEO-STM32H7A3测评之WINUSB移植

[复制链接]
3773|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文件,按如下修改:

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源代码如下:
STM32H7A3_WINUSB.zip (1.28 MB)
上位机源代码(网友guanglun编写):
guanglunking-WINUSB_PC_Test-master.zip (95.53 KB)
上位机有点大,大家可以百度搜索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

使用特权

评论回复
5
纪国圣|  楼主 | 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) 有兴趣测个速试试。


使用特权

评论回复
6
纪国圣|  楼主 | 2021-6-19 13:20 | 只看该作者

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

使用特权

评论回复
7
纪国圣|  楼主 | 2021-7-10 08:58 | 只看该作者
现修改WINUSB的驱动,使之与ST的驱动库独立。大家只需先生成一个CDC工程,然后删除CDC相关文件,再将USB_DEVICE放入工程中,添加里面的文件,编译下载就可以使用了。 USB_DEVICE.zip (21.79 KB)
STM32H7A3_WINUSB独立库.zip (1.28 MB)

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xode + 1 很给力!
8
gyh974| | 2021-7-12 09:09 | 只看该作者
谢谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

405

帖子

5

粉丝