/** * @brief Initializes the PCD MSP. * @param hpcd: PCD handle * @retval None */ void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) { GPIO_InitTypeDef GPIO_InitStruct; /* Enable the GPIOA clock */ __HAL_RCC_GPIOA_CLK_ENABLE(); /* Configure USB DM and DP pins. This is optional, and maintained only for user guidance. */ GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12); GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable USB FS Clock */ __HAL_RCC_USB_CLK_ENABLE(); if(hpcd->Init.low_power_enable == 1) { /* Enable EXTI Line 18 for USB wakeup */ __HAL_USB_WAKEUP_EXTI_ENABLE_IT(); } /* Set USB FS Interrupt priority */ HAL_NVIC_SetPriority(USB_IRQn, 3, 0); /* Enable USB FS Interrupt */ HAL_NVIC_EnableIRQ(USB_IRQn); }
/** * @brief Initializes the PCD MSP. * @param hpcd: PCD handle * @retval None */ void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) { GPIO_InitTypeDef GPIO_InitStruct; /* Enable the GPIOA clock */ __HAL_RCC_GPIOA_CLK_ENABLE(); /* Configure USB DM/DP pins */ GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12); GPIO_InitStruct.Mode = GPIO_MODE_AF_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable the USB disconnect GPIO clock */ __HAL_RCC_GPIOB_CLK_ENABLE(); /* /\* USB_DISCONNECT used as USB pull-up *\/ */ /* GPIO_InitStruct.Pin = USB_DISCONNECT_PIN; */ /* GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; */ /* HAL_GPIO_Init(USB_DISCONNECT_PORT, &GPIO_InitStruct); */ /* Enable USB Clock */ __HAL_RCC_USB_CLK_ENABLE(); if (hpcd->Init.low_power_enable == 1) { /* Enable EXTI for USB wakeup */ __HAL_USB_WAKEUP_EXTI_CLEAR_FLAG(); __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_EDGE(); __HAL_USB_WAKEUP_EXTI_ENABLE_IT(); /* USB Wakeup Interrupt */ HAL_NVIC_EnableIRQ(USBWakeUp_IRQn); /* Enable USB Wake-up interrupt */ HAL_NVIC_SetPriority(USBWakeUp_IRQn, 0, 0); } /* Set USB Interrupt priority */ HAL_NVIC_SetPriority(USB_LP_CAN1_RX0_IRQn, 5, 0); /* Enable USB Interrupt */ HAL_NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn); }
void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) { if(hpcd->Instance==USB) { /* USER CODE BEGIN USB_MspInit 0 */ /* USER CODE END USB_MspInit 0 */ /* Peripheral clock enable */ __USB_CLK_ENABLE(); /* Peripheral interrupt init*/ HAL_NVIC_SetPriority(USB_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USB_IRQn); /* USER CODE BEGIN USB_MspInit 1 */ if (hpcd->Init.low_power_enable == 1) { /* Enable EXTI Line 18 for USB wakeup */ __HAL_USB_WAKEUP_EXTI_ENABLE_IT(); } /* USER CODE END USB_MspInit 1 */ } }
/** * @brief Initializes the PCD MSP. * @param hpcd: PCD handle * @retval None */ void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) { GPIO_InitTypeDef GPIO_InitStruct; /* Enable the GPIOA clock for USB DataLines */ __HAL_RCC_GPIOA_CLK_ENABLE(); /* Enable the GPIOB clock for USB external Pull-Up */ __HAL_RCC_GPIOC_CLK_ENABLE(); /* Configure USB DM and 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_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable USB FS Clock */ __HAL_RCC_USB_CLK_ENABLE(); /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); #if defined (USE_USB_INTERRUPT_REMAPPED) /*USB interrupt remapping enable */ __HAL_REMAPINTERRUPT_USB_ENABLE(); #endif if(hpcd->Init.low_power_enable == 1) { /* Enable EXTI Line 18 for USB wakeup */ __HAL_USB_WAKEUP_EXTI_CLEAR_FLAG(); __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_EDGE(); __HAL_USB_WAKEUP_EXTI_ENABLE_IT(); #if defined (USE_USB_INTERRUPT_DEFAULT) /* USB Default Wakeup Interrupt */ HAL_NVIC_EnableIRQ(USBWakeUp_IRQn); /* Enable USB Wake-up interrupt */ HAL_NVIC_SetPriority(USBWakeUp_IRQn, 0, 0); #elif defined (USE_USB_INTERRUPT_REMAPPED) /* USB Remapped Wakeup Interrupt */ HAL_NVIC_EnableIRQ(USBWakeUp_RMP_IRQn); /* Enable USB Wake-up interrupt */ HAL_NVIC_SetPriority(USBWakeUp_RMP_IRQn, 0, 0); #endif } #if defined (USE_USB_INTERRUPT_DEFAULT) /* Set USB Default FS Interrupt priority */ HAL_NVIC_SetPriority(USB_LP_CAN_RX0_IRQn, 0x0F, 0); /* Enable USB FS Interrupt */ HAL_NVIC_EnableIRQ(USB_LP_CAN_RX0_IRQn); #elif defined (USE_USB_INTERRUPT_REMAPPED) /* Set USB Remapped FS Interrupt priority */ HAL_NVIC_SetPriority(USB_LP_IRQn, 0x0F, 0); /* Enable USB FS Interrupt */ HAL_NVIC_EnableIRQ(USB_LP_IRQn); #endif }