|
ÖжÏÓÅÏȼ¶Ôç¾ÍÊÔ¹ýÁË£¬Ó¦¸Ã²»ÊÇÕâÀïµÄÎÊÌâ¡£USBµÄ£º HAL_NVIC_SetPriority(OTG_HS_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(OTG_HS_IRQn);
ETHµÄ£º HAL_NVIC_SetPriority(ETH_IRQn, 1, 0); //ÍøÂçÖжÏÓÅÏȼ¶Ó¦¸Ã¸ßÒ»µã
HAL_NVIC_EnableIRQ(ETH_IRQn);
USBËäȻʹÓõÄÊÇHSÄǸöPORT£¬µ«ÊÇʹÓõÄÊÇÈ«ËÙģʽ£¬ËùÒÔDMAÊǹرյġ£USBH_StatusTypeDef USBH_LL_Init(USBH_HandleTypeDef *phost)
{
/* Init USB_IP */
if (phost->id == HOST_HS) {
/* Link the driver to the stack. */
hhcd_USB_OTG_HS.pData = phost;
phost->pData = &hhcd_USB_OTG_HS;
hhcd_USB_OTG_HS.Instance = USB_OTG_HS;
hhcd_USB_OTG_HS.Init.Host_channels = 12;
hhcd_USB_OTG_HS.Init.speed = HCD_SPEED_FULL;
hhcd_USB_OTG_HS.Init.dma_enable = DISABLE; //STM32H7ÔÚÈ«ËÙģʽÏ£¬DMA²»ÊÇ´ò¿ª£¬·ñÔòUSBö¾Ùʧ°Ü,DMAÖ»ÔÚHSÏÂʹÓÃ
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.vbus_sensing_enable = DISABLE;
hhcd_USB_OTG_HS.Init.use_external_vbus = DISABLE;
if (HAL_HCD_Init(&hhcd_USB_OTG_HS) != HAL_OK)
{
Error_Handler( );
}
USBH_LL_SetTimer(phost, HAL_HCD_GetCurrentFrame(&hhcd_USB_OTG_HS));
}
return USBH_OK;
}
|
|