硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4933|回复: 3
收起左侧

[ThreadX全家桶] USBX复合设备如何选择通信的对象?

[复制链接]

4

主题

31

回帖

43

积分

新手上路

积分
43
发表于 2021-6-10 11:08:38 | 显示全部楼层 |阅读模式
本帖最后由 miss-you 于 2021-6-10 11:34 编辑

当前复合设备做的是2个CDC_ACM设备, 已经成功枚举出了2个虚拟串口,代码中如何区分消息是由那个端口接收的呢?
当只用一个虚拟串口时, 可以正常使用,  虚拟2个时有一个能正常打开,另一个直接选中就报错
正常打开的设备 发送消息直接卡死,  调试过程中发现是接收线程中get的信号量和接收消息后put的信号量不是同一个导致。



我的理解是虚拟出的COM5和COM6在代码中是由图片中的data_interface来选择,ux_device_class_cdc_acm_read读取数据时传入的cdc_acm
是这个接口的类型,我将现在的cdc_acm和  data_interface = device->ux_slave_device_first_interface->ux_slave_interface_next_interface->ux_slave_interface_next_interface->ux_slave_interface_next_interface;
后的cdc_acm比较地址发现, 2个地址完全一样, 猜测是因为我虚拟了2个一样class的复合设备,所以这里的ux_slave_interface_class_instance指向了同一个类地址。


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-6-10 11:26:41 | 显示全部楼层
帮顶,还没有研究USBX复合设备。
回复

使用道具 举报

4

主题

31

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2021-6-10 11:36:24 | 显示全部楼层
图片掉了 我补上file:///C:/Users/Hello/Desktop/usb.jpg
回复

使用道具 举报

4

主题

31

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2021-6-10 11:37:34 | 显示全部楼层
图片补在这里

usb

usb
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-20 19:58 , Processed in 0.650966 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表