|

楼主 |
发表于 2021-7-24 13:48:05
|
显示全部楼层
本帖最后由 hpdell 于 2021-7-24 15:37 编辑
貌似按照历程提供的程序,捣鼓移植了一下,结果很悲催的失败, 
貌似是 usb 的中断函数没有反应 ?
相关配置如下:
void MX_USB_OTG_HS_HCD_Init(void)
{
hhcd_USB_OTG_HS.Instance = USB2_OTG_FS; // USB_OTG_HS; USB_OTG_FS; USB2_OTG_FS
hhcd_USB_OTG_HS.Init.Host_channels = 16;
hhcd_USB_OTG_HS.Init.speed = HCD_SPEED_FULL;
hhcd_USB_OTG_HS.Init.dma_enable = DISABLE;
hhcd_USB_OTG_HS.Init.phy_itface = USB_OTG_EMBEDDED_PHY;
hhcd_USB_OTG_HS.Init.Sof_enable = DISABLE;
hhcd_USB_OTG_HS.Init.low_power_enable = DISABLE;
hhcd_USB_OTG_HS.Init.use_external_vbus = DISABLE;
if (HAL_HCD_Init(&hhcd_USB_OTG_HS) != HAL_OK)
{
}
}
void HAL_HCD_MspInit(HCD_HandleTypeDef * hhcd)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if (hhcd->Instance == USB2_OTG_FS)
{
/* Configure USB FS GPIOs */
__HAL_RCC_GPIOA_CLK_ENABLE();
/* Configure DM DP Pins */
GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12);
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF10_OTG1_FS;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* Enable USB FS Clocks */
__HAL_RCC_USB2_OTG_FS_CLK_ENABLE();
/* Disable USB clock during CSleep mode */
__HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE();
/* Set USBFS Interrupt priority */
HAL_NVIC_SetPriority(OTG_FS_IRQn, 0x6, 0);
/* Enable USBFS Interrupt */
HAL_NVIC_EnableIRQ(OTG_FS_IRQn);
}
}
void OTG_FS_IRQHandler(void)
{
HAL_HCD_IRQHandler(&hhcd_USB_OTG_HS);
}
正常来说,这样配置后,不管能否初始化成功,最起码都能够进入到 中断函数里面来吧 ? 目前仿真 程序根本就没有进入中断函数里面来呀 ????????????
|
|