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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版