CubeMX 配置工程:

①:引脚功能配置。 串口1调试用,USB_OTG_FS

STM32 F105 USB CDC host


②:时钟配置:

STM32 F105 USB CDC host

:USB 参数配置:

STM32 F105 USB CDC host


然后直接生产代码。


  因为我所要枚举的USB设备为组合设备,所以要根据设备的接口数及每个接口中的端点数去配置,如上图中的配置的最大接口数为10, 最大的端点数为5. 这些参数在usbh_conf.h  中可找到。

在调试的过程中问题:

 在USB枚举成功后,进入HOST_CLASS_REQUEST: 时,该请求总是返回 USBH_FAIL 。 虽然还是没搞清楚该步骤的有啥作用,但是跳过该步骤,直接进入 HOST_CLASS ,后面的USB通信还是能正常进行。


USB 主机的发送和接收:

发送函数: USBH_CDC_Transmit(&hUsbHostFS,rxBuf,rxSize);

接收: USBH_CDC_Receive(phost,recBuf,6);

接收回调:

USBH_CDC_ReceiveCallback(USBH_HandleTypeDef* phost);


例如:void USBH_CDC_ReceiveCallback(USBH_HandleTypeDef *phost)

{

int len;

CDC_HandleTypeDef  *CDC_Handle = (CDC_HandleTypeDef*) phost->pActiveClass->pData;

len = USBH_CDC_GetLastReceivedDataSize(phost);

for(int i = 0; i<len; i++)

printf("data:%x\n",recBuf[i]);
}


相关文章: