lijie-344389 发表于 2012-4-16 21:18:15

如何向USB HID设备发送数据(STM32F207-stm32f105-07_f2xx_usbhost_lib)

 本人利用ST提供的stm32f105-07_f2xx_usbhost_lib库把STM32F207当作HID设备来操作,由于ST提供的例程只是向主机发送数据,本人想利用Bus Hound软件将数据写入HID设备,标准的USB 设备请求命令:SET_DESCRIPTOR来向设备写入数据,
bmRequestType  + bRequest  + wValue  + wIndex  + wLength  + 数据,(0x00 + 0x07 + (0x00 + 0x00)+ (0x00 + 0x00)+ (0x10 + 0x00) +16个DATA)但是我在设备设断点,看到主机给从机发送的数据只有前面八个数据,没有后面16个DATA。
对接收的数据进行解析函数:
void USBD_ParseSetupRequest( USB_OTG_CORE_HANDLE  *pdev,
                            USB_SETUP_REQ *req)
{
  req->bmRequest     = *(uint8_t *)  (pdev->dev.setup_packet);
  req->bRequest      = *(uint8_t *)  (pdev->dev.setup_packet +  1);
  req->wValue        = SWAPBYTE      (pdev->dev.setup_packet +  2);
  req->wIndex        = SWAPBYTE      (pdev->dev.setup_packet +  4);
  req->wLength       = SWAPBYTE      (pdev->dev.setup_packet +  6);
 
  pdev->dev.in_ep.ctl_data_len = req->wLength  ;
  pdev->dev.device_state = USB_OTG_EP0_SETUP;
}
我在keil窗口观察变量pdev->dev.setup_packet,发现只有前面八个数据,后面16个data却没有(setup_packet为setup_packet ; ),不知道自己错在哪个位置,请大家指点一下!按照协议,SET_DESCRIPTOR后面是可以带数据的,不知道为何从设备接到不到。
或者大家有什么更好的方法,请指点。
程序位置:stm32f105-07_f2xx_usbhost_lib\STM32_F105-07_F2xx_USB-Host-Device_Lib_V2.0.0\Project\USB_Device_Examples\HID;(target option->define : USE_USB_OTG_HS,USE_EMBEDDED_PHY)

lijie-344389 发表于 2012-4-17 13:49:47

RE:如何向USB HID设备发送数据(STM32F207-stm32f105-07_f2xx_usbhost_lib)

是不是不能向端点0发数据啊?端点0为控制端点,自己也不太清楚。
页: [1]
查看完整版本: 如何向USB HID设备发送数据(STM32F207-stm32f105-07_f2xx_usbhost_lib)