你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 USB CDC 虚拟多串口  

[复制链接]
creep 发布时间:2017-9-28 22:30
阅读主题, 点击返回1楼
5 收藏 53 评论134 发布时间:2017-9-28 22:30
134个回答
creep 回答时间:2017-12-30 10:53:37
唯有奋斗 发表于 2017-12-30 08:58您好,请问一下STM32F4能虚拟出几个VCP呢?
这个要看下具体型号的USB端点有多少?
zcl201207 回答时间:2017-12-30 14:02:26
唯有奋斗 回答时间:2017-12-30 22:02:24
creep 发表于 2017-12-30 10:53这个要看下具体型号的USB端点有多少?
407有多少个端点?USB端点和VCP是什么样的对应关系呢?
唯有奋斗 回答时间:2018-1-7 01:01:33
C:\Users\my\Desktop\微信截图_20180107005942.png版主你好,以这里看,貌似做从机的时候是8对,也就是16个EP,那请问是不是只能做5个VCP呢?
唯有奋斗 回答时间:2018-1-7 01:04:14

STM32H7xx

STM32H7xx
你好,版主,如图所示,做从机的时候有8对EP是吧?然后可以虚拟出5个VCP,是这样吗?3个EP虚拟出一个VCP?
MaggiGunner 回答时间:2018-1-11 11:48:21
楼主你好,您这篇帖子我研究好几天了,也看了很多其它的资料。现在遇到的问题是2VCP能枚举出,但是无法连续发送,而且在不同系统的电脑上表现的状态不一致。我目前使用的win10系统,驱动自动安装,设备管理器显示USB Serial Port(COM X),但是打开串口助手无法连续输出,切换两串口会是不是出现VCP0/VCP1发送语句,但也仅限于一句。个人猜测和驱动有关,不知道楼主有没有类似情况?或者说明一下附件中程序用F769-DISCO开发板,在什么系统上使用能正常的呢?另外INF文件在我电脑上装不上,
creep 回答时间:2018-1-11 12:03:31
MaggiGunner 发表于 2018-1-11 11:48楼主你好,您这篇帖子我研究好几天了,也看了很多其它的资料。现在遇到的问题是2VCP能枚举出,但是无法连续 ...
帖子里面的测试gif 和截图是在win7 上进行的,这个时候需要加载一个inf 驱动。在win10上是可以自己加载驱动,如果你能正常枚举2个串口那就问题不大了,通信部分你可以再确认下代码。至少可以先调通一个VCP收发没有任何问题再移植多VCP。
kylongmu 回答时间:2018-1-11 13:43:51
本帖最后由 kylongmu 于 2018-1-11 13:48 编辑 楼主你好,有没有linux下CDC驱动,比如接入树莓派这样的板子就很方便了,接口控制与逻辑由MCU来完成,高级功能“界面、网络”由树莓派完成。一直有这个想法,ST官方也不提供驱动源码,要是有USB2的HS驱动源码,有的话MCU拿来传大数据流也是不错的。
creep 回答时间:2018-1-11 14:39:32
kylongmu 发表于 2018-1-11 13:43楼主你好,有没有linux下CDC驱动,比如接入树莓派这样的板子就很方便了,接口控制与逻辑由MCU来完成,高级 ...
其实这个我也不懂,问了几个大佬后他们说linux里面集成的有CDC驱动了,不需要另外的驱动文件。
MaggiGunner 回答时间:2018-1-11 15:35:16
creep 发表于 2018-1-11 12:03帖子里面的测试gif 和截图是在win7 上进行的,这个时候需要加载一个inf 驱动。在win10上是可以自己加载 ...
现在用CUBEMX生成单VCP发送没有问题。我看网上说VID和PID也很重要,我在您例程里看用的是0x03EB/0x6133,不知道这个有什么考虑吗?STM默认用的是0x0483/0x5740.另外win10安装没有数字签名驱动的方法您那有吗?我这边安装总是不成功
creep 回答时间:2018-1-11 16:06:23
MaggiGunner 发表于 2018-1-11 15:35现在用CUBEMX生成单VCP发送没有问题。我看网上说VID和PID也很重要,我在您例程里看用的是0x03EB/0x6133, ...
1、 要保证STM32程序里面的用PID VID和驱动文件INF的PID VID保持一致,这里使用和官方的PID VID不一样是为了加载自己写的那个驱动,这样可以修改枚举出来的串口名称。2、没有数字证书的问题我也搞不定,这个目前没有办法,WIN7 32位可以强制安装驱动,但是64位或者win10好像只能禁用签名验证才能安装驱动。win10也可以使用系统自动加载的兼容驱动好像也能正常通信。
kylongmu 回答时间:2018-1-11 18:03:58
creep 发表于 2018-1-11 14:39其实这个我也不懂,问了几个大佬后他们说linux里面集成的有CDC驱动了,不需要另外的驱动文件。 ...
好的,谢谢,回头试试。
MaggiGunner 回答时间:2018-2-2 10:18:24
楼主你好,目前又有一个细节问题需要请教~我发了一个帖子询问端点缓冲区大小设置:STM32F7 USB 缓冲区设置最小单位是字节还是字?https://www.stmcu.org.cn/module/ ... amp;fromuid=3350409(出处: 意法半导体STM32/STM8技术社区)想请教一下你的缓冲区大小设置是怎么考虑的?
wylew 回答时间:2018-2-6 09:25:22
你好,你写的教程基本都能理解,就是我想问一下,我研究的源码里,它没有分别对某一个端点进行初始化的函数,而是统一用一个函数来初始化:endpoint_control_address = (UX_DCD_OTG_FS_DIEPCTL0 + (ed -> ux_dcd_otg_ed_index * UX_DCD_OTG_ENDPOINT_SPACE_SIZE));endpoint_size_address = (UX_DCD_OTG_FS_DIEPTSIZ0 + (ed -> ux_dcd_otg_ed_index * UX_DCD_OTG_ENDPOINT_SPACE_SIZE));endpoint_dma_address = (UX_DCD_OTG_FS_DIEPDMA0 + (ed -> ux_dcd_otg_ed_index * UX_DCD_OTG_ENDPOINT_SPACE_SIZE));就像这样,在一个函数里就设置了端点0和非0端点的所有端点的IN设置,可根据ed -> ux_dcd_otg_ed_index来判断是哪一个端点,所以,相对来说,如果我添加了端点,就是不是不需要再添加我加的端点的初始化函数呢
JohnShen 回答时间:2018-2-24 11:55:26
感谢分享!!

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版