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

USB CDC host怎么与多串口的从机通信?

[复制链接]
fafa1 提问时间:2020-5-12 14:53 /
USB CDC host怎么与多串口的从机通信?
有一个从设备的USB虚拟了3个串口,作为主设备,如何分别识别出每个串口,分别于每个串口通信?
我的主设备使用的是官方单独的USB标准库(非CUBEMX),大神帮忙理一理,谢谢!   

是在哪个过程(函数)实现识别多个虚拟串口的?
收藏 评论11 发布时间:2020-5-12 14:53

举报

11个回答
李康1202 回答时间:2020-5-12 18:29:23
B站应该找得到资料
fafa1 回答时间:2020-5-13 08:23:24
B站是什么?哔哩哔哩???
STMWoodData 回答时间:2020-5-13 08:42:49
提示: 作者被禁止或删除 内容自动屏蔽
废鱼 回答时间:2020-5-13 08:51:43
楼上解释的合理,在枚举的时候会创建各个USB虚拟串口节点。可以通过不同的节点判断时哪个串口。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

fafa1 回答时间:2020-5-13 14:32:48
谢谢楼上两位!
还有些内容不理解:

单步调试枚举出来如下的端点(这个从机设备接到电脑上会看到2个虚拟串口):

USB_Host->device_prop->Ep_Desc[0][0]:07 05 81 03 10 00 01
USB_Host->device_prop->Ep_Desc[0][1]:00 00 00 00 00 00 00
USB_Host->device_prop->Ep_Desc[0][2]:00 00 00 00 00 00 00
USB_Host->device_prop->Ep_Desc[0][3]:00 00 00 00 00 00 00


USB_Host->device_prop->Ep_Desc[1][0]:07 05 82 02 40 00 00
USB_Host->device_prop->Ep_Desc[1][1]:07 05 01 02 40 00 00
USB_Host->device_prop->Ep_Desc[1][2]:00 00 00 00 00 00 00
USB_Host->device_prop->Ep_Desc[1][3]:00 00 00 00 00 00 00


USB_Host->device_prop->Ep_Desc[2][0]:07 05 83 03 10 00 01
USB_Host->device_prop->Ep_Desc[2][1]:00 00 00 00 00 00 00
USB_Host->device_prop->Ep_Desc[2][2]:00 00 00 00 00 00 00
USB_Host->device_prop->Ep_Desc[2][3]:00 00 00 00 00 00 00


USB_Host->device_prop->Ep_Desc[3][0]:07 05 84 02 40 00 00
USB_Host->device_prop->Ep_Desc[3][1]:07 05 02 02 40 00 00
USB_Host->device_prop->Ep_Desc[3][2]:00 00 00 00 00 00 00
USB_Host->device_prop->Ep_Desc[3][3]:00 00 00 00 00 00 00

这里如何理解上边的这些枚举内容?谢谢!
天臆弄人 回答时间:2020-5-13 16:07:50
从哪个端口过来的数据,你记录这个端口,然后要发直接往这个发送就是了,
fafa1 回答时间:2020-5-14 08:30:35
天臆弄人 发表于 2020-5-13 16:07
从哪个端口过来的数据,你记录这个端口,然后要发直接往这个发送就是了, ...

你好!
我现在也不知道怎么来找接收到的数据,我是用的是官网提供的《en.stm32_f105-07_f2_f4_usb-host-device_lib》里边的《USB_Host_Examples》-->《CDC》工程,你能详细给我指点一下接收和发送数据的函数是哪个吗?非常感谢!
butterflyspring 回答时间:2020-5-21 17:15:59
配置描述符下面包含的接口描述符(有几个串口就有几个)。每个接口描述符包含端点描述符,与哪个串口通讯就与哪个接口通讯。 理论上确定配置描述符内容,就能区分开。
cloudcn 回答时间:2020-5-23 10:43:08
从USB设备里读取设备描述符,重点去分析接口描述符与端点描述符,
因为是三个串口 应该算是USB复合设备 还里面应该还有IAD描述符
分析描述符就能得到每个端口对应的通信端点号,
你可以把设备插电脑上用usbtreeview看一下就明白了

wangsc1994 回答时间:2020-9-15 16:49:21
mark一下
wangsc1994 回答时间:2020-9-15 16:50:05
mark 一下
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版