89 __HAL_RCC_USB_OTG_HS_CLK_ENABLE();
110 __HAL_RCC_USB_OTG_HS_CLK_DISABLE();
128#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
129static void PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd)
143#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
144static void PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
158#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
159static void PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
172#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
173static void PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
186#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
187static void PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
194 if ( hpcd->Init.speed == PCD_SPEED_HIGH)
198 else if ( hpcd->Init.speed == PCD_SPEED_FULL)
219#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
220static void PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
227 __HAL_PCD_GATE_PHYCLOCK(hpcd);
230 if (hpcd->Init.low_power_enable)
244#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
245static void PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
262#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
263static void PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
277#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
278static void PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
291#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
292static void PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
305#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
306static void PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
347#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
349 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback);
350 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback);
351 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback);
352 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback);
353 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback);
354 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback);
355 HAL_PCD_RegisterCallback(&
hpcd_USB_OTG_HS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback);
357 HAL_PCD_RegisterDataOutStageCallback(&
hpcd_USB_OTG_HS, PCD_DataOutStageCallback);
358 HAL_PCD_RegisterDataInStageCallback(&
hpcd_USB_OTG_HS, PCD_DataInStageCallback);
359 HAL_PCD_RegisterIsoOutIncpltCallback(&
hpcd_USB_OTG_HS, PCD_ISOOUTIncompleteCallback);
360 HAL_PCD_RegisterIsoInIncpltCallback(&
hpcd_USB_OTG_HS, PCD_ISOINIncompleteCallback);
381 hal_status = HAL_PCD_DeInit(pdev->
pData);
398 hal_status = HAL_PCD_Start(pdev->
pData);
415 hal_status = HAL_PCD_Stop(pdev->
pData);
435 hal_status = HAL_PCD_EP_Open(pdev->
pData, ep_addr, ep_mps, ep_type);
453 hal_status = HAL_PCD_EP_Close(pdev->
pData, ep_addr);
471 hal_status = HAL_PCD_EP_Flush(pdev->
pData, ep_addr);
489 hal_status = HAL_PCD_EP_SetStall(pdev->
pData, ep_addr);
507 hal_status = HAL_PCD_EP_ClrStall(pdev->
pData, ep_addr);
522 PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->
pData;
524 if((ep_addr & 0x80) == 0x80)
526 return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
530 return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
545 hal_status = HAL_PCD_SetAddress(pdev->
pData, dev_addr);
565 hal_status = HAL_PCD_EP_Transmit(pdev->
pData, ep_addr, pbuf, size);
585 hal_status = HAL_PCD_EP_Receive(pdev->
pData, ep_addr, pbuf, size);
600 return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->
pData, ep_addr);
603#ifdef USBD_HS_TESTMODE_ENABLE
#define SCB_SCR_SLEEPONEXIT_Msk
SCB SCR: SLEEPONEXIT Mask.
#define SCB_SCR_SLEEPDEEP_Msk
SCB SCR: SLEEPDEEP Mask.
#define SCB
SCB configuration struct.
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
void HAL_Delay(uint32_t Delay)
This function provides minimum delay (in milliseconds) based on variable incremented.
void HAL_PWREx_EnableUSBVoltageDetector(void)
@ OTG_HS_EP1_IN_IRQn
USB OTG HS End Point 1 In global interrupt.
@ OTG_HS_IRQn
USB OTG HS global interrupt.
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit)
#define RCC_PERIPHCLK_USB
#define RCC_USBCLKSOURCE_HSI48
volatile bool g_usb_terminal_connected
void USBD_static_free(void *p)
Dummy memory free.
void * USBD_static_malloc(uint32_t size)
Static single allocation.
USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t size)
Transmits data over an endpoint.
USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev)
USBD_LL_DevDisconnected Handle device disconnection event.
USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata)
USBD_LL_DataInStage Handle data in stage.
USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Flushes an endpoint of the Low Level Driver.
USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata)
USBD_LL_DataOutStage Handle data OUT stage.
USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum)
USBD_LL_IsoOUTIncomplete Handle iso out incomplete event.
USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
Initializes the low level portion of the device driver.
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Returns Stall condition.
void USBD_LL_Delay(uint32_t Delay)
Delays routine for the USB device library.
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
Starts the low level portion of the device driver.
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t size)
Prepares an endpoint for reception.
USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum)
USBD_LL_IsoINIncomplete Handle iso in incomplete event.
USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev)
USBD_LL_Suspend Handle Suspend event.
USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev)
USBD_LL_Reset Handle Reset event.
USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev)
De-Initializes the low level portion of the device driver.
USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, USBD_SpeedTypeDef speed)
USBD_LL_SetSpeed Handle Reset event.
USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev)
USBD_LL_DevConnected Handle device connection event.
USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Sets a Stall condition on an endpoint of the Low Level Driver.
USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup)
USBD_LL_SetupStage Handle the setup stage.
USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev)
Stops the low level portion of the device driver.
USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev)
USBD_LL_SOF Handle SOF event.
USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev)
USBD_LL_Resume Handle Resume event.
USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr)
Assigns a USB address to the device.
USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Clears a Stall condition on an endpoint of the Low Level Driver.
USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps)
Opens an endpoint of the low level driver.
USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Closes an endpoint of the low level driver.
uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Returns the last transferred packet size.
struct _USBD_HandleTypeDef USBD_HandleTypeDef
CMSIS STM32H7xx Device Peripheral Access Layer Header File.
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition.
PCD_HandleTypeDef hpcd_USB_OTG_HS
RCC extended clocks structure definition.
uint64_t PeriphClockSelection
The Extended Clock to be configured.
uint32_t UsbClockSelection
Specifies USB clock source This parameter can be a value of RCCEx USB Clock Source.
header file for the usbd_cdc.c file.
void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
Resume callback.
void HAL_PCD_MspDeInit(PCD_HandleTypeDef *pcdHandle)
void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
Connect callback.
void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
Suspend callback.
void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
Data In stage callback.
void Error_Handler(void)
This function is executed in case of error occurrence.
void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
Disconnect callback.
void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
Data Out stage callback.
void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
ISOOUTIncomplete callback.
USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status)
Returns the USB status depending on the HAL status:
void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
SOF callback.
void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
ISOINIncomplete callback.
void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd)
Setup stage callback.
void HAL_PCD_MspInit(PCD_HandleTypeDef *pcdHandle)
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
Reset callback.
Header file for usbd_core.c file.
General defines for the usb device library.