STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_hal_pcd.h 00004 * @author MCD Application Team 00005 * @brief Header file of PCD HAL module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2017 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32H7xx_HAL_PCD_H 00021 #define STM32H7xx_HAL_PCD_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32h7xx_ll_usb.h" 00029 00030 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 00031 00032 /** @addtogroup STM32H7xx_HAL_Driver 00033 * @{ 00034 */ 00035 00036 /** @addtogroup PCD 00037 * @{ 00038 */ 00039 00040 /* Exported types ------------------------------------------------------------*/ 00041 /** @defgroup PCD_Exported_Types PCD Exported Types 00042 * @{ 00043 */ 00044 00045 /** 00046 * @brief PCD State structure definition 00047 */ 00048 typedef enum 00049 { 00050 HAL_PCD_STATE_RESET = 0x00, 00051 HAL_PCD_STATE_READY = 0x01, 00052 HAL_PCD_STATE_ERROR = 0x02, 00053 HAL_PCD_STATE_BUSY = 0x03, 00054 HAL_PCD_STATE_TIMEOUT = 0x04 00055 } PCD_StateTypeDef; 00056 00057 /* Device LPM suspend state */ 00058 typedef enum 00059 { 00060 LPM_L0 = 0x00, /* on */ 00061 LPM_L1 = 0x01, /* LPM L1 sleep */ 00062 LPM_L2 = 0x02, /* suspend */ 00063 LPM_L3 = 0x03, /* off */ 00064 } PCD_LPM_StateTypeDef; 00065 00066 typedef enum 00067 { 00068 PCD_LPM_L0_ACTIVE = 0x00, /* on */ 00069 PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */ 00070 } PCD_LPM_MsgTypeDef; 00071 00072 typedef enum 00073 { 00074 PCD_BCD_ERROR = 0xFF, 00075 PCD_BCD_CONTACT_DETECTION = 0xFE, 00076 PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD, 00077 PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC, 00078 PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB, 00079 PCD_BCD_DISCOVERY_COMPLETED = 0x00, 00080 00081 } PCD_BCD_MsgTypeDef; 00082 00083 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 00084 typedef USB_OTG_GlobalTypeDef PCD_TypeDef; 00085 typedef USB_OTG_CfgTypeDef PCD_InitTypeDef; 00086 typedef USB_OTG_EPTypeDef PCD_EPTypeDef; 00087 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 00088 00089 /** 00090 * @brief PCD Handle Structure definition 00091 */ 00092 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 00093 typedef struct __PCD_HandleTypeDef 00094 #else 00095 typedef struct 00096 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 00097 { 00098 PCD_TypeDef *Instance; /*!< Register base address */ 00099 PCD_InitTypeDef Init; /*!< PCD required parameters */ 00100 __IO uint8_t USB_Address; /*!< USB Address */ 00101 PCD_EPTypeDef IN_ep[16]; /*!< IN endpoint parameters */ 00102 PCD_EPTypeDef OUT_ep[16]; /*!< OUT endpoint parameters */ 00103 HAL_LockTypeDef Lock; /*!< PCD peripheral status */ 00104 __IO PCD_StateTypeDef State; /*!< PCD communication state */ 00105 __IO uint32_t ErrorCode; /*!< PCD Error code */ 00106 uint32_t Setup[12]; /*!< Setup packet buffer */ 00107 PCD_LPM_StateTypeDef LPM_State; /*!< LPM State */ 00108 uint32_t BESL; 00109 00110 00111 uint32_t lpm_active; /*!< Enable or disable the Link Power Management . 00112 This parameter can be set to ENABLE or DISABLE */ 00113 00114 uint32_t battery_charging_active; /*!< Enable or disable Battery charging. 00115 This parameter can be set to ENABLE or DISABLE */ 00116 void *pData; /*!< Pointer to upper stack Handler */ 00117 00118 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 00119 void (* SOFCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD SOF callback */ 00120 void (* SetupStageCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Setup Stage callback */ 00121 void (* ResetCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Reset callback */ 00122 void (* SuspendCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Suspend callback */ 00123 void (* ResumeCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Resume callback */ 00124 void (* ConnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Connect callback */ 00125 void (* DisconnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Disconnect callback */ 00126 00127 void (* DataOutStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data OUT Stage callback */ 00128 void (* DataInStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data IN Stage callback */ 00129 void (* ISOOUTIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO OUT Incomplete callback */ 00130 void (* ISOINIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO IN Incomplete callback */ 00131 void (* BCDCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< USB OTG PCD BCD callback */ 00132 void (* LPMCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< USB OTG PCD LPM callback */ 00133 00134 void (* MspInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp Init callback */ 00135 void (* MspDeInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp DeInit callback */ 00136 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 00137 } PCD_HandleTypeDef; 00138 00139 /** 00140 * @} 00141 */ 00142 00143 /* Include PCD HAL Extended module */ 00144 #include "stm32h7xx_hal_pcd_ex.h" 00145 00146 /* Exported constants --------------------------------------------------------*/ 00147 /** @defgroup PCD_Exported_Constants PCD Exported Constants 00148 * @{ 00149 */ 00150 00151 /** @defgroup PCD_Speed PCD Speed 00152 * @{ 00153 */ 00154 #define PCD_SPEED_HIGH USBD_HS_SPEED 00155 #define PCD_SPEED_HIGH_IN_FULL USBD_HSINFS_SPEED 00156 #define PCD_SPEED_FULL USBD_FS_SPEED 00157 /** 00158 * @} 00159 */ 00160 00161 /** @defgroup PCD_PHY_Module PCD PHY Module 00162 * @{ 00163 */ 00164 #define PCD_PHY_ULPI 1U 00165 #define PCD_PHY_EMBEDDED 2U 00166 #define PCD_PHY_UTMI 3U 00167 /** 00168 * @} 00169 */ 00170 00171 /** @defgroup PCD_Error_Code_definition PCD Error Code definition 00172 * @brief PCD Error Code definition 00173 * @{ 00174 */ 00175 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 00176 #define HAL_PCD_ERROR_INVALID_CALLBACK (0x00000010U) /*!< Invalid Callback error */ 00177 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 00178 00179 /** 00180 * @} 00181 */ 00182 00183 /** 00184 * @} 00185 */ 00186 00187 /* Exported macros -----------------------------------------------------------*/ 00188 /** @defgroup PCD_Exported_Macros PCD Exported Macros 00189 * @brief macros to handle interrupts and specific clock configurations 00190 * @{ 00191 */ 00192 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 00193 #define __HAL_PCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance) 00194 #define __HAL_PCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance) 00195 00196 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) \ 00197 ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__)) 00198 00199 #define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__)) 00200 #define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U) 00201 00202 #define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) \ 00203 *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= ~(USB_OTG_PCGCCTL_STOPCLK) 00204 00205 #define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) \ 00206 *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK 00207 00208 #define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) \ 00209 ((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE)) & 0x10U) 00210 00211 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT() EXTI_D1->IMR2 |= (USB_OTG_HS_WAKEUP_EXTI_LINE) 00212 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT() EXTI_D1->IMR2 &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE) 00213 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT() EXTI_D1->IMR2 |= (USB_OTG_FS_WAKEUP_EXTI_LINE) 00214 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT() EXTI_D1->IMR2 &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE) 00215 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 00216 00217 00218 /** 00219 * @} 00220 */ 00221 00222 /* Exported functions --------------------------------------------------------*/ 00223 /** @addtogroup PCD_Exported_Functions PCD Exported Functions 00224 * @{ 00225 */ 00226 00227 /* Initialization/de-initialization functions ********************************/ 00228 /** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions 00229 * @{ 00230 */ 00231 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd); 00232 HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd); 00233 void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd); 00234 void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd); 00235 00236 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 00237 /** @defgroup HAL_PCD_Callback_ID_enumeration_definition HAL USB OTG PCD Callback ID enumeration definition 00238 * @brief HAL USB OTG PCD Callback ID enumeration definition 00239 * @{ 00240 */ 00241 typedef enum 00242 { 00243 HAL_PCD_SOF_CB_ID = 0x01, /*!< USB PCD SOF callback ID */ 00244 HAL_PCD_SETUPSTAGE_CB_ID = 0x02, /*!< USB PCD Setup Stage callback ID */ 00245 HAL_PCD_RESET_CB_ID = 0x03, /*!< USB PCD Reset callback ID */ 00246 HAL_PCD_SUSPEND_CB_ID = 0x04, /*!< USB PCD Suspend callback ID */ 00247 HAL_PCD_RESUME_CB_ID = 0x05, /*!< USB PCD Resume callback ID */ 00248 HAL_PCD_CONNECT_CB_ID = 0x06, /*!< USB PCD Connect callback ID */ 00249 HAL_PCD_DISCONNECT_CB_ID = 0x07, /*!< USB PCD Disconnect callback ID */ 00250 00251 HAL_PCD_MSPINIT_CB_ID = 0x08, /*!< USB PCD MspInit callback ID */ 00252 HAL_PCD_MSPDEINIT_CB_ID = 0x09 /*!< USB PCD MspDeInit callback ID */ 00253 00254 } HAL_PCD_CallbackIDTypeDef; 00255 /** 00256 * @} 00257 */ 00258 00259 /** @defgroup HAL_PCD_Callback_pointer_definition HAL USB OTG PCD Callback pointer definition 00260 * @brief HAL USB OTG PCD Callback pointer definition 00261 * @{ 00262 */ 00263 00264 typedef void (*pPCD_CallbackTypeDef)(PCD_HandleTypeDef *hpcd); /*!< pointer to a common USB OTG PCD callback function */ 00265 typedef void (*pPCD_DataOutStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data OUT Stage callback */ 00266 typedef void (*pPCD_DataInStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data IN Stage callback */ 00267 typedef void (*pPCD_IsoOutIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO OUT Incomplete callback */ 00268 typedef void (*pPCD_IsoInIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO IN Incomplete callback */ 00269 typedef void (*pPCD_LpmCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< pointer to USB OTG PCD LPM callback */ 00270 typedef void (*pPCD_BcdCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< pointer to USB OTG PCD BCD callback */ 00271 00272 /** 00273 * @} 00274 */ 00275 00276 HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, 00277 HAL_PCD_CallbackIDTypeDef CallbackID, 00278 pPCD_CallbackTypeDef pCallback); 00279 00280 HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, 00281 HAL_PCD_CallbackIDTypeDef CallbackID); 00282 00283 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, 00284 pPCD_DataOutStageCallbackTypeDef pCallback); 00285 00286 HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd); 00287 00288 HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, 00289 pPCD_DataInStageCallbackTypeDef pCallback); 00290 00291 HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd); 00292 00293 HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, 00294 pPCD_IsoOutIncpltCallbackTypeDef pCallback); 00295 00296 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd); 00297 00298 HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, 00299 pPCD_IsoInIncpltCallbackTypeDef pCallback); 00300 00301 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd); 00302 00303 HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, 00304 pPCD_BcdCallbackTypeDef pCallback); 00305 00306 HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd); 00307 00308 HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, 00309 pPCD_LpmCallbackTypeDef pCallback); 00310 00311 HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd); 00312 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 00313 /** 00314 * @} 00315 */ 00316 00317 /* I/O operation functions ***************************************************/ 00318 /* Non-Blocking mode: Interrupt */ 00319 /** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions 00320 * @{ 00321 */ 00322 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd); 00323 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd); 00324 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd); 00325 00326 void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd); 00327 void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd); 00328 void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd); 00329 void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd); 00330 void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd); 00331 void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd); 00332 void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd); 00333 00334 void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 00335 void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 00336 void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 00337 void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 00338 /** 00339 * @} 00340 */ 00341 00342 /* Peripheral Control functions **********************************************/ 00343 /** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions 00344 * @{ 00345 */ 00346 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd); 00347 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd); 00348 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address); 00349 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, 00350 uint16_t ep_mps, uint8_t ep_type); 00351 00352 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 00353 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, 00354 uint8_t *pBuf, uint32_t len); 00355 00356 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, 00357 uint8_t *pBuf, uint32_t len); 00358 00359 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 00360 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 00361 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 00362 HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 00363 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); 00364 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); 00365 HAL_StatusTypeDef HAL_PCD_SetTestMode(PCD_HandleTypeDef *hpcd, uint8_t testmode); 00366 00367 uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 00368 /** 00369 * @} 00370 */ 00371 00372 /* Peripheral State functions ************************************************/ 00373 /** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions 00374 * @{ 00375 */ 00376 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd); 00377 /** 00378 * @} 00379 */ 00380 00381 /** 00382 * @} 00383 */ 00384 00385 /* Private constants ---------------------------------------------------------*/ 00386 /** @defgroup PCD_Private_Constants PCD Private Constants 00387 * @{ 00388 */ 00389 /** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt 00390 * @{ 00391 */ 00392 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 00393 #define USB_OTG_FS_WAKEUP_EXTI_LINE (0x1U << 12) /*!< USB FS EXTI Line WakeUp Interrupt */ 00394 #define USB_OTG_HS_WAKEUP_EXTI_LINE (0x1U << 11) /*!< USB HS EXTI Line WakeUp Interrupt */ 00395 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 00396 00397 00398 /** 00399 * @} 00400 */ 00401 /** 00402 * @} 00403 */ 00404 00405 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 00406 #ifndef USB_OTG_DOEPINT_OTEPSPR 00407 #define USB_OTG_DOEPINT_OTEPSPR (0x1UL << 5) /*!< Status Phase Received interrupt */ 00408 #endif /* defined USB_OTG_DOEPINT_OTEPSPR */ 00409 00410 #ifndef USB_OTG_DOEPMSK_OTEPSPRM 00411 #define USB_OTG_DOEPMSK_OTEPSPRM (0x1UL << 5) /*!< Setup Packet Received interrupt mask */ 00412 #endif /* defined USB_OTG_DOEPMSK_OTEPSPRM */ 00413 00414 #ifndef USB_OTG_DOEPINT_NAK 00415 #define USB_OTG_DOEPINT_NAK (0x1UL << 13) /*!< NAK interrupt */ 00416 #endif /* defined USB_OTG_DOEPINT_NAK */ 00417 00418 #ifndef USB_OTG_DOEPMSK_NAKM 00419 #define USB_OTG_DOEPMSK_NAKM (0x1UL << 13) /*!< OUT Packet NAK interrupt mask */ 00420 #endif /* defined USB_OTG_DOEPMSK_NAKM */ 00421 00422 #ifndef USB_OTG_DOEPINT_STPKTRX 00423 #define USB_OTG_DOEPINT_STPKTRX (0x1UL << 15) /*!< Setup Packet Received interrupt */ 00424 #endif /* defined USB_OTG_DOEPINT_STPKTRX */ 00425 00426 #ifndef USB_OTG_DOEPMSK_NYETM 00427 #define USB_OTG_DOEPMSK_NYETM (0x1UL << 14) /*!< Setup Packet Received interrupt mask */ 00428 #endif /* defined USB_OTG_DOEPMSK_NYETM */ 00429 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 00430 00431 /* Private macros ------------------------------------------------------------*/ 00432 /** @defgroup PCD_Private_Macros PCD Private Macros 00433 * @{ 00434 */ 00435 00436 /** 00437 * @} 00438 */ 00439 00440 /** 00441 * @} 00442 */ 00443 00444 /** 00445 * @} 00446 */ 00447 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 00448 00449 #ifdef __cplusplus 00450 } 00451 #endif 00452 00453 #endif /* STM32H7xx_HAL_PCD_H */