平台:STM32 F207
使用usb host 模式和另外一台设备通信,从打印信息看枚举全过程,有两个interface,如下:
if_descriptor->bLength=0x09
if_descriptor->bDescriptorType=0x04 USB_INTERFACE_DESCRIPTOR_TYPE
if_descriptor->bInterfaceNumber=0x00
if_descriptor->bAlternateSetting=0x00
if_descriptor->bNumEndpoints=0x01 //One endpoints used
if_descriptor->bInterfaceClass=0x02 //Communication Interface Class
if_descriptor->bInterfaceSubClass=0x02 //Abstract Control Model
if_descriptor->bInterfaceProtocol=0x01 //Common AT commands
if_descriptor->iInterface=0x00
这个接口的endpoint:
p_descriptor->bLength=0x07
ep_descriptor->bDescriptorType=0x05 USB_ENDPOINT_DESCRIPTOR_TYPE
ep_descriptor->bEndpointAddress=0x81
ep_descriptor->bmAttributes=0x03 Interrupt
ep_descriptor->wMaxPacketSize=0x40
ep_descriptor->bInterval=0x01
后面数据接口:
if_descriptor->bLength=0x09
if_descriptor->bDescriptorType=0x04 USB_INTERFACE_DESCRIPTOR_TYPE
if_descriptor->bInterfaceNumber=0x01 第二个接口
if_descriptor->bAlternateSetting=0x00
if_descriptor->bNumEndpoints=0x02 Two endpoints used
if_descriptor->bInterfaceClass=0x0a CDC
if_descriptor->bInterfaceSubClass=0x00
if_descriptor->bInterfaceProtocol=0x00
if_descriptor->iInterface=0x00
两个endpoint的地址分别是 82h 和 02h
我想请教,前面的命令接口为什么只有一个endpoint,方向是从device到host的。那host向device发送命令,怎么处理呢?
枚举完了以后,我需要向这个设备发送at指令,请问是从命令接口发送,还是从数据接口发送?
谢谢! |