STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
stm32f4xx_hal_hcd.c File Reference

HCD HAL module driver. This file provides firmware functions to manage the following functionalities of the USB Peripheral Controller: More...

#include "stm32f4xx_hal.h"
Include dependency graph for stm32f4xx_hal_hcd.c:

Go to the source code of this file.

Functions

static void HCD_HC_IN_IRQHandler (HCD_HandleTypeDef *hhcd, uint8_t chnum)
 Handle Host Channel IN interrupt requests.
 
static void HCD_HC_OUT_IRQHandler (HCD_HandleTypeDef *hhcd, uint8_t chnum)
 Handle Host Channel OUT interrupt requests.
 
static void HCD_RXQLVL_IRQHandler (HCD_HandleTypeDef *hhcd)
 Handle Rx Queue Level interrupt requests.
 
static void HCD_Port_IRQHandler (HCD_HandleTypeDef *hhcd)
 Handle Host Port interrupt requests.
 
HAL_StatusTypeDef HAL_HCD_Init (HCD_HandleTypeDef *hhcd)
 Initialize the host driver.
 
HAL_StatusTypeDef HAL_HCD_HC_Init (HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps)
 Initialize a host channel.
 
HAL_StatusTypeDef HAL_HCD_HC_Halt (HCD_HandleTypeDef *hhcd, uint8_t ch_num)
 Halt a host channel.
 
HAL_StatusTypeDef HAL_HCD_DeInit (HCD_HandleTypeDef *hhcd)
 DeInitialize the host driver.
 
void HAL_HCD_MspInit (HCD_HandleTypeDef *hhcd)
 Initialize the HCD MSP.
 
void HAL_HCD_MspDeInit (HCD_HandleTypeDef *hhcd)
 DeInitialize the HCD MSP.
 
HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest (HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t direction, uint8_t ep_type, uint8_t token, uint8_t *pbuff, uint16_t length, uint8_t do_ping)
 Submit a new URB for processing.
 
void HAL_HCD_IRQHandler (HCD_HandleTypeDef *hhcd)
 Handle HCD interrupt request.
 
void HAL_HCD_WKUP_IRQHandler (HCD_HandleTypeDef *hhcd)
 Handles HCD Wakeup interrupt request.
 
void HAL_HCD_SOF_Callback (HCD_HandleTypeDef *hhcd)
 SOF callback.
 
void HAL_HCD_Connect_Callback (HCD_HandleTypeDef *hhcd)
 Connection Event callback.
 
void HAL_HCD_Disconnect_Callback (HCD_HandleTypeDef *hhcd)
 Disconnection Event callback.
 
void HAL_HCD_PortEnabled_Callback (HCD_HandleTypeDef *hhcd)
 Port Enabled Event callback.
 
void HAL_HCD_PortDisabled_Callback (HCD_HandleTypeDef *hhcd)
 Port Disabled Event callback.
 
void HAL_HCD_HC_NotifyURBChange_Callback (HCD_HandleTypeDef *hhcd, uint8_t chnum, HCD_URBStateTypeDef urb_state)
 Notify URB state change callback.
 
HAL_StatusTypeDef HAL_HCD_Start (HCD_HandleTypeDef *hhcd)
 Start the host driver.
 
HAL_StatusTypeDef HAL_HCD_Stop (HCD_HandleTypeDef *hhcd)
 Stop the host driver.
 
HAL_StatusTypeDef HAL_HCD_ResetPort (HCD_HandleTypeDef *hhcd)
 Reset the host port.
 
HCD_StateTypeDef HAL_HCD_GetState (HCD_HandleTypeDef const *hhcd)
 Return the HCD handle state.
 
HCD_URBStateTypeDef HAL_HCD_HC_GetURBState (HCD_HandleTypeDef const *hhcd, uint8_t chnum)
 Return URB state for a channel.
 
uint32_t HAL_HCD_HC_GetXferCount (HCD_HandleTypeDef const *hhcd, uint8_t chnum)
 Return the last host transfer size.
 
HCD_HCStateTypeDef HAL_HCD_HC_GetState (HCD_HandleTypeDef const *hhcd, uint8_t chnum)
 Return the Host Channel state.
 
uint32_t HAL_HCD_GetCurrentFrame (HCD_HandleTypeDef *hhcd)
 Return the current Host frame number.
 
uint32_t HAL_HCD_GetCurrentSpeed (HCD_HandleTypeDef *hhcd)
 Return the Host enumeration speed.
 
HAL_StatusTypeDef HAL_HCD_HC_SetHubInfo (HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t addr, uint8_t PortNbr)
 Set host channel Hub information.
 
HAL_StatusTypeDef HAL_HCD_HC_ClearHubInfo (HCD_HandleTypeDef *hhcd, uint8_t ch_num)
 Clear host channel hub information.
 

Detailed Description

HCD HAL module driver. This file provides firmware functions to manage the following functionalities of the USB Peripheral Controller:

Author
MCD Application Team
  • Initialization and de-initialization functions
  • IO operation functions
  • Peripheral Control functions
  • Peripheral State functions
Attention

Copyright (c) 2016 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

==============================================================================
                  ##### How to use this driver #####
==============================================================================
[..]
  (#)Declare a HCD_HandleTypeDef handle structure, for example:
     HCD_HandleTypeDef  hhcd;

  (#)Fill parameters of Init structure in HCD handle

  (#)Call HAL_HCD_Init() API to initialize the HCD peripheral (Core, Host core, ...)

  (#)Initialize the HCD low level resources through the HAL_HCD_MspInit() API:
      (##) Enable the HCD/USB Low Level interface clock using the following macros
           (+++) __HAL_RCC_USB_OTG_FS_CLK_ENABLE();
           (+++) __HAL_RCC_USB_OTG_HS_CLK_ENABLE(); (For High Speed Mode)
           (+++) __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE(); (For High Speed Mode)

      (##) Initialize the related GPIO clocks
      (##) Configure HCD pin-out
      (##) Configure HCD NVIC interrupt

  (#)Associate the Upper USB Host stack to the HAL HCD Driver:
      (##) hhcd.pData = phost;

  (#)Enable HCD transmission and reception:
      (##) HAL_HCD_Start();

Definition in file stm32f4xx_hal_hcd.c.