25#include "stm32f4xx_hal.h"
29#include "stm32f7xx_hal.h"
33#include "stm32h7xx_hal.h"
84#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
87void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd)
99#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
102void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t
epnum)
114#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
117void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t
epnum)
128#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
131void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
142#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
145void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
148 USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
150 if ( hpcd->Init.speed == PCD_SPEED_HIGH)
152 speed = USBD_SPEED_HIGH;
154 else if ( hpcd->Init.speed == PCD_SPEED_FULL)
156 speed = USBD_SPEED_FULL;
160 ASSERT_RT(BLT_FALSE);
175#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
178void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
183 __HAL_PCD_GATE_PHYCLOCK(hpcd);
186 if (hpcd->Init.low_power_enable)
189 SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
202#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
205void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
221#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
224void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t
epnum)
236#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
239void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t
epnum)
250#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
253void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
267#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
270void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
291 if (pdev->id == DEVICE_FS) {
308 ASSERT_RT(BLT_FALSE);
311#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
340 HAL_StatusTypeDef hal_status = HAL_OK;
341 USBD_StatusTypeDef usb_status = USBD_OK;
343 hal_status = HAL_PCD_DeInit(pdev->pData);
357 HAL_StatusTypeDef hal_status = HAL_OK;
358 USBD_StatusTypeDef usb_status = USBD_OK;
360 hal_status = HAL_PCD_Start(pdev->pData);
374 HAL_StatusTypeDef hal_status = HAL_OK;
375 USBD_StatusTypeDef usb_status = USBD_OK;
377 hal_status = HAL_PCD_Stop(pdev->pData);
392USBD_StatusTypeDef
USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps)
394 HAL_StatusTypeDef hal_status = HAL_OK;
395 USBD_StatusTypeDef usb_status = USBD_OK;
397 hal_status = HAL_PCD_EP_Open(pdev->pData, ep_addr, ep_mps, ep_type);
412 HAL_StatusTypeDef hal_status = HAL_OK;
413 USBD_StatusTypeDef usb_status = USBD_OK;
415 hal_status = HAL_PCD_EP_Close(pdev->pData, ep_addr);
430 HAL_StatusTypeDef hal_status = HAL_OK;
431 USBD_StatusTypeDef usb_status = USBD_OK;
433 hal_status = HAL_PCD_EP_Flush(pdev->pData, ep_addr);
448 HAL_StatusTypeDef hal_status = HAL_OK;
449 USBD_StatusTypeDef usb_status = USBD_OK;
451 hal_status = HAL_PCD_EP_SetStall(pdev->pData, ep_addr);
466 HAL_StatusTypeDef hal_status = HAL_OK;
467 USBD_StatusTypeDef usb_status = USBD_OK;
469 hal_status = HAL_PCD_EP_ClrStall(pdev->pData, ep_addr);
484 PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->pData;
486 if((ep_addr & 0x80) == 0x80)
488 return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
492 return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
504 HAL_StatusTypeDef hal_status = HAL_OK;
505 USBD_StatusTypeDef usb_status = USBD_OK;
507 hal_status = HAL_PCD_SetAddress(pdev->pData, dev_addr);
524 HAL_StatusTypeDef hal_status = HAL_OK;
525 USBD_StatusTypeDef usb_status = USBD_OK;
527 hal_status = HAL_PCD_EP_Transmit(pdev->pData, ep_addr, pbuf,
size);
544 HAL_StatusTypeDef hal_status = HAL_OK;
545 USBD_StatusTypeDef usb_status = USBD_OK;
547 hal_status = HAL_PCD_EP_Receive(pdev->pData, ep_addr, pbuf,
size);
562 return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->pData, ep_addr);
582 USBD_StatusTypeDef usb_status = USBD_OK;
587 usb_status = USBD_OK;
590 usb_status = USBD_FAIL;
593 usb_status = USBD_BUSY;
596 usb_status = USBD_FAIL;
599 usb_status = USBD_FAIL;
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_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata)
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_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum)
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_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev)
USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev)
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_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev)
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_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_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev)
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 transfered packet size.
void UsbConnectHook(blt_bool connect)
Callback that gets called whenever the USB device should be connected to the USB bus.
void UsbLeaveLowPowerModeHook(void)
Callback that gets called whenever the USB host requests the device to exit low power mode.
void UsbEnterLowPowerModeHook(void)
Callback that gets called whenever the USB host requests the device to enter a low power mode.
header file for the usbd_bulk.c file.
static void PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd
ISOOUTIncomplete callback.
static void PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
Resume callback. When Low power mode is enabled the debug cannot be used (IAR, Keil doesn't support i...
PCD_HandleTypeDef hpcd_USB_OTG_FS
static void PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
Suspend callback. When Low power mode is enabled the debug cannot be used (IAR, Keil doesn't support ...
static void PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
Disconnect callback.
static void PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd)
Setup stage callback.
void SystemClock_Config(void)
USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status)
Retuns the USB status depending on the HAL status:
static void PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd
Data Out stage callback.
static void PCD_SOFCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
SOF callback.
static void PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd
ISOINIncomplete callback.
static void PCD_ResetCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
Reset callback.
static void PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd
Data In stage callback.
static void uint8_t epnum
static void PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
Connect callback.
Header file for usbd_core.c file.