stm32F4有两个USB的OTG,其中的USB OTG HS在不外接PHY的情况下可以当FS(全速)使用吗?
由于USB OTG FS口被占用,所以想用USB OTG HS口,有没有这样用过的同学?
下面是我的初始化相关代码:
USBH_Init(&USB_OTG_Core,USB_OTG_HS_CORE_ID,&USB_Host,&USBH_MSC_cb,&USR_cb);
//USB OTG 底层IO初始化
//pdev:USB OTG内核结构体指针
void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev)
{
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOB_CLK_ENABLE(); //使能GPIOB时钟
__HAL_RCC_USB_OTG_HS_CLK_ENABLE(); //使能OTG HS时钟
//配置PB14,15
GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15; //PB 14.15
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; //复用
GPIO_InitStruct.Pull = GPIO_NOPULL; //无上下拉
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; //高速
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; //复用为OTG FS
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); //初始化
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP; //上拉
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); //初始化
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_SET);//开启USB HOST电源供电
}
//USB OTG 中断设置,开启USB HS中断
//pdev:USB OTG内核结构体指针
void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev)
{
HAL_NVIC_SetPriority(OTG_HS_IRQn,0,3); //抢占优先级0,子优先级3
HAL_NVIC_EnableIRQ(OTG_HS_IRQn); //使能OTG USB FS中断
}
目前是插入U盘完全没反应。求USB高手指点。 |