在线时间0 小时
UID344389
ST金币0
蝴蝶豆0
注册时间2012-2-28
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
本人利用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[0].ctl_data_len = req->wLength ;
pdev->dev.device_state = USB_OTG_EP0_SETUP;
}
我在keil窗口观察变量pdev->dev.setup_packet,发现只有前面八个数据,后面16个data却没有(setup_packet为setup_packet [8*3]; ),不知道自己错在哪个位置,请大家指点一下!按照协议,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) |
-
-
stm32f105-07_f2xx_usbhost_lib.zip
下载
2.65 MB, 下载次数: 157, 下载积分: ST金币 -1
|