Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of TUKS-COURSE-TIMER by
stm32l4xx_hal_hcd.h
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_hal_hcd.h 00004 * @author MCD Application Team 00005 * @version V1.5.1 00006 * @date 31-May-2016 00007 * @brief Header file of HCD HAL module. 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __STM32L4xx_HAL_HCD_H 00040 #define __STM32L4xx_HAL_HCD_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 #if defined(STM32L475xx) || defined(STM32L476xx) || defined(STM32L485xx) || defined(STM32L486xx) 00047 00048 /* Includes ------------------------------------------------------------------*/ 00049 #include "stm32l4xx_ll_usb.h" 00050 00051 /** @addtogroup STM32L4xx_HAL_Driver 00052 * @{ 00053 */ 00054 00055 /** @addtogroup HCD 00056 * @{ 00057 */ 00058 00059 /* Exported types ------------------------------------------------------------*/ 00060 /** @defgroup HCD_Exported_Types HCD Exported Types 00061 * @{ 00062 */ 00063 00064 /** @defgroup HCD_Exported_Types_Group1 HCD State Structure definition 00065 * @{ 00066 */ 00067 typedef enum 00068 { 00069 HAL_HCD_STATE_RESET = 0x00, 00070 HAL_HCD_STATE_READY = 0x01, 00071 HAL_HCD_STATE_ERROR = 0x02, 00072 HAL_HCD_STATE_BUSY = 0x03, 00073 HAL_HCD_STATE_TIMEOUT = 0x04 00074 } HCD_StateTypeDef; 00075 00076 typedef USB_OTG_GlobalTypeDef HCD_TypeDef; 00077 typedef USB_OTG_CfgTypeDef HCD_InitTypeDef; 00078 typedef USB_OTG_HCTypeDef HCD_HCTypeDef ; 00079 typedef USB_OTG_URBStateTypeDef HCD_URBStateTypeDef ; 00080 typedef USB_OTG_HCStateTypeDef HCD_HCStateTypeDef ; 00081 /** 00082 * @} 00083 */ 00084 00085 /** @defgroup HCD_Exported_Types_Group2 HCD Handle Structure definition 00086 * @{ 00087 */ 00088 typedef struct 00089 { 00090 HCD_TypeDef *Instance; /*!< Register base address */ 00091 HCD_InitTypeDef Init; /*!< HCD required parameters */ 00092 HCD_HCTypeDef hc[15]; /*!< Host channels parameters */ 00093 HAL_LockTypeDef Lock; /*!< HCD peripheral status */ 00094 __IO HCD_StateTypeDef State; /*!< HCD communication state */ 00095 void *pData; /*!< Pointer Stack Handler */ 00096 00097 } HCD_HandleTypeDef; 00098 /** 00099 * @} 00100 */ 00101 00102 /** 00103 * @} 00104 */ 00105 00106 /* Exported constants --------------------------------------------------------*/ 00107 /** @defgroup HCD_Exported_Constants HCD Exported Constants 00108 * @{ 00109 */ 00110 00111 /** @defgroup HCD_Speed HCD Speed 00112 * @{ 00113 */ 00114 #define HCD_SPEED_HIGH 0 00115 #define HCD_SPEED_LOW 2 00116 #define HCD_SPEED_FULL 3 00117 /** 00118 * @} 00119 */ 00120 00121 /** @defgroup HCD_PHY_Module HCD PHY Module 00122 * @{ 00123 */ 00124 #define HCD_PHY_EMBEDDED 1 00125 /** 00126 * @} 00127 */ 00128 00129 /** 00130 * @} 00131 */ 00132 00133 /* Exported macro ------------------------------------------------------------*/ 00134 /** @defgroup HCD_Exported_Macros HCD Exported Macros 00135 * @brief macros to handle interrupts and specific clock configurations 00136 * @{ 00137 */ 00138 #define __HAL_HCD_ENABLE(__HANDLE__) USB_EnableGlobalInt ((__HANDLE__)->Instance) 00139 #define __HAL_HCD_DISABLE(__HANDLE__) USB_DisableGlobalInt ((__HANDLE__)->Instance) 00140 00141 #define __HAL_HCD_GET_FLAG(__HANDLE__, __INTERRUPT__) ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__)) 00142 #define __HAL_HCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) = (__INTERRUPT__)) 00143 #define __HAL_HCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0) 00144 00145 #define __HAL_HCD_CLEAR_HC_INT(chnum, __INTERRUPT__) (USBx_HC(chnum)->HCINT = (__INTERRUPT__)) 00146 #define __HAL_HCD_MASK_HALT_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK &= ~USB_OTG_HCINTMSK_CHHM) 00147 #define __HAL_HCD_UNMASK_HALT_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK |= USB_OTG_HCINTMSK_CHHM) 00148 #define __HAL_HCD_MASK_ACK_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK &= ~USB_OTG_HCINTMSK_ACKM) 00149 #define __HAL_HCD_UNMASK_ACK_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK |= USB_OTG_HCINTMSK_ACKM) 00150 /** 00151 * @} 00152 */ 00153 00154 /* Exported functions --------------------------------------------------------*/ 00155 /** @addtogroup HCD_Exported_Functions HCD Exported Functions 00156 * @{ 00157 */ 00158 00159 /* Initialization/de-initialization functions ********************************/ 00160 /** @addtogroup HCD_Exported_Functions_Group1 Initialization and de-initialization functions 00161 * @{ 00162 */ 00163 HAL_StatusTypeDef HAL_HCD_Init(HCD_HandleTypeDef *hhcd); 00164 HAL_StatusTypeDef HAL_HCD_DeInit (HCD_HandleTypeDef *hhcd); 00165 HAL_StatusTypeDef HAL_HCD_HC_Init(HCD_HandleTypeDef *hhcd, 00166 uint8_t ch_num, 00167 uint8_t epnum, 00168 uint8_t dev_address, 00169 uint8_t speed, 00170 uint8_t ep_type, 00171 uint16_t mps); 00172 00173 HAL_StatusTypeDef HAL_HCD_HC_Halt(HCD_HandleTypeDef *hhcd, 00174 uint8_t ch_num); 00175 00176 void HAL_HCD_MspInit(HCD_HandleTypeDef *hhcd); 00177 void HAL_HCD_MspDeInit(HCD_HandleTypeDef *hhcd); 00178 /** 00179 * @} 00180 */ 00181 00182 /* I/O operation functions ***************************************************/ 00183 /** @addtogroup HCD_Exported_Functions_Group2 Input and Output operation functions 00184 * @{ 00185 */ 00186 HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd, 00187 uint8_t pipe, 00188 uint8_t direction , 00189 uint8_t ep_type, 00190 uint8_t token, 00191 uint8_t* pbuff, 00192 uint16_t length, 00193 uint8_t do_ping); 00194 00195 /* Non-Blocking mode: Interrupt */ 00196 void HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd); 00197 void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd); 00198 void HAL_HCD_Connect_Callback(HCD_HandleTypeDef *hhcd); 00199 void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd); 00200 void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef *hhcd, 00201 uint8_t chnum, 00202 HCD_URBStateTypeDef urb_state); 00203 /** 00204 * @} 00205 */ 00206 00207 /* Peripheral Control functions **********************************************/ 00208 /** @addtogroup HCD_Exported_Functions_Group3 Peripheral Control functions 00209 * @{ 00210 */ 00211 HAL_StatusTypeDef HAL_HCD_ResetPort(HCD_HandleTypeDef *hhcd); 00212 HAL_StatusTypeDef HAL_HCD_Start(HCD_HandleTypeDef *hhcd); 00213 HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd); 00214 /** 00215 * @} 00216 */ 00217 00218 /* Peripheral State functions ************************************************/ 00219 /** @addtogroup HCD_Exported_Functions_Group4 Peripheral State functions 00220 * @{ 00221 */ 00222 HCD_StateTypeDef HAL_HCD_GetState(HCD_HandleTypeDef *hhcd); 00223 HCD_URBStateTypeDef HAL_HCD_HC_GetURBState(HCD_HandleTypeDef *hhcd, uint8_t chnum); 00224 uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef *hhcd, uint8_t chnum); 00225 HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef *hhcd, uint8_t chnum); 00226 uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd); 00227 uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd); 00228 /** 00229 * @} 00230 */ 00231 00232 /** 00233 * @} 00234 */ 00235 00236 /* Private macros ------------------------------------------------------------*/ 00237 /** @defgroup HCD_Private_Macros HCD Private Macros 00238 * @{ 00239 */ 00240 00241 /** 00242 * @} 00243 */ 00244 00245 /** 00246 * @} 00247 */ 00248 00249 /** 00250 * @} 00251 */ 00252 00253 #endif /* STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx */ 00254 00255 #ifdef __cplusplus 00256 } 00257 #endif 00258 00259 #endif /* __STM32L4xx_HAL_HCD_H */ 00260 00261 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 17:38:49 by
