The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
<>
Date:
Mon Jan 16 12:05:23 2017 +0000
Revision:
134:ad3be0349dc5
Parent:
132:9baf128c2fab
Child:
145:64910690c574
Release 134 of the mbed library

Ports for Upcoming Targets


Fixes and Changes

3488: Dev stm i2c v2 unitary functions https://github.com/ARMmbed/mbed-os/pull/3488
3492: Fix #3463 CAN read() return value https://github.com/ARMmbed/mbed-os/pull/3492
3503: [LPC15xx] Ensure that PWM=1 is resolved correctly https://github.com/ARMmbed/mbed-os/pull/3503
3504: [LPC15xx] CAN implementation improvements https://github.com/ARMmbed/mbed-os/pull/3504
3539: NUCLEO_F412ZG - Add support of TRNG peripheral https://github.com/ARMmbed/mbed-os/pull/3539
3540: STM: SPI: Initialize Rx in spi_master_write https://github.com/ARMmbed/mbed-os/pull/3540
3438: K64F: Add support for SERIAL ASYNCH API https://github.com/ARMmbed/mbed-os/pull/3438
3519: MCUXpresso: Fix ENET driver to enable interrupts after interrupt handler is set https://github.com/ARMmbed/mbed-os/pull/3519
3544: STM32L4 deepsleep improvement https://github.com/ARMmbed/mbed-os/pull/3544
3546: NUCLEO-F412ZG - Add CAN peripheral https://github.com/ARMmbed/mbed-os/pull/3546
3551: Fix I2C driver for RZ/A1H https://github.com/ARMmbed/mbed-os/pull/3551
3558: K64F UART Asynch API: Fix synchronization issue https://github.com/ARMmbed/mbed-os/pull/3558
3563: LPC4088 - Fix vector checksum https://github.com/ARMmbed/mbed-os/pull/3563
3567: Dev stm32 F0 v1.7.0 https://github.com/ARMmbed/mbed-os/pull/3567
3577: Fixes linking errors when building with debug profile https://github.com/ARMmbed/mbed-os/pull/3577

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 92:4fc01daae5a5 1 /**
bogdanm 92:4fc01daae5a5 2 ******************************************************************************
bogdanm 92:4fc01daae5a5 3 * @file stm32f4xx_hal_pcd.h
bogdanm 92:4fc01daae5a5 4 * @author MCD Application Team
Kojto 122:f9eeca106725 5 * @version V1.5.0
Kojto 122:f9eeca106725 6 * @date 06-May-2016
bogdanm 92:4fc01daae5a5 7 * @brief Header file of PCD HAL module.
bogdanm 92:4fc01daae5a5 8 ******************************************************************************
bogdanm 92:4fc01daae5a5 9 * @attention
bogdanm 92:4fc01daae5a5 10 *
Kojto 122:f9eeca106725 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
bogdanm 92:4fc01daae5a5 12 *
bogdanm 92:4fc01daae5a5 13 * Redistribution and use in source and binary forms, with or without modification,
bogdanm 92:4fc01daae5a5 14 * are permitted provided that the following conditions are met:
bogdanm 92:4fc01daae5a5 15 * 1. Redistributions of source code must retain the above copyright notice,
bogdanm 92:4fc01daae5a5 16 * this list of conditions and the following disclaimer.
bogdanm 92:4fc01daae5a5 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
bogdanm 92:4fc01daae5a5 18 * this list of conditions and the following disclaimer in the documentation
bogdanm 92:4fc01daae5a5 19 * and/or other materials provided with the distribution.
bogdanm 92:4fc01daae5a5 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bogdanm 92:4fc01daae5a5 21 * may be used to endorse or promote products derived from this software
bogdanm 92:4fc01daae5a5 22 * without specific prior written permission.
bogdanm 92:4fc01daae5a5 23 *
bogdanm 92:4fc01daae5a5 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bogdanm 92:4fc01daae5a5 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bogdanm 92:4fc01daae5a5 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bogdanm 92:4fc01daae5a5 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bogdanm 92:4fc01daae5a5 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bogdanm 92:4fc01daae5a5 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bogdanm 92:4fc01daae5a5 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bogdanm 92:4fc01daae5a5 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bogdanm 92:4fc01daae5a5 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bogdanm 92:4fc01daae5a5 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bogdanm 92:4fc01daae5a5 34 *
bogdanm 92:4fc01daae5a5 35 ******************************************************************************
bogdanm 92:4fc01daae5a5 36 */
bogdanm 92:4fc01daae5a5 37
bogdanm 92:4fc01daae5a5 38 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 92:4fc01daae5a5 39 #ifndef __STM32F4xx_HAL_PCD_H
bogdanm 92:4fc01daae5a5 40 #define __STM32F4xx_HAL_PCD_H
bogdanm 92:4fc01daae5a5 41
bogdanm 92:4fc01daae5a5 42 #ifdef __cplusplus
bogdanm 92:4fc01daae5a5 43 extern "C" {
bogdanm 92:4fc01daae5a5 44 #endif
Kojto 110:165afa46840b 45 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
Kojto 110:165afa46840b 46 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
Kojto 110:165afa46840b 47 defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE) || defined(STM32F446xx) || \
Kojto 122:f9eeca106725 48 defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || \
Kojto 122:f9eeca106725 49 defined(STM32F412Rx) || defined(STM32F412Cx)
bogdanm 92:4fc01daae5a5 50 /* Includes ------------------------------------------------------------------*/
bogdanm 92:4fc01daae5a5 51 #include "stm32f4xx_ll_usb.h"
bogdanm 92:4fc01daae5a5 52
bogdanm 92:4fc01daae5a5 53 /** @addtogroup STM32F4xx_HAL_Driver
bogdanm 92:4fc01daae5a5 54 * @{
bogdanm 92:4fc01daae5a5 55 */
bogdanm 92:4fc01daae5a5 56
bogdanm 92:4fc01daae5a5 57 /** @addtogroup PCD
bogdanm 92:4fc01daae5a5 58 * @{
bogdanm 92:4fc01daae5a5 59 */
bogdanm 92:4fc01daae5a5 60
bogdanm 92:4fc01daae5a5 61 /* Exported types ------------------------------------------------------------*/
Kojto 99:dbbf35b96557 62 /** @defgroup PCD_Exported_Types PCD Exported Types
Kojto 99:dbbf35b96557 63 * @{
Kojto 99:dbbf35b96557 64 */
Kojto 99:dbbf35b96557 65
Kojto 99:dbbf35b96557 66 /**
Kojto 99:dbbf35b96557 67 * @brief PCD State structure definition
Kojto 99:dbbf35b96557 68 */
bogdanm 92:4fc01daae5a5 69 typedef enum
bogdanm 92:4fc01daae5a5 70 {
Kojto 122:f9eeca106725 71 HAL_PCD_STATE_RESET = 0x00U,
Kojto 122:f9eeca106725 72 HAL_PCD_STATE_READY = 0x01U,
Kojto 122:f9eeca106725 73 HAL_PCD_STATE_ERROR = 0x02U,
Kojto 122:f9eeca106725 74 HAL_PCD_STATE_BUSY = 0x03U,
Kojto 122:f9eeca106725 75 HAL_PCD_STATE_TIMEOUT = 0x04U
bogdanm 92:4fc01daae5a5 76 } PCD_StateTypeDef;
bogdanm 92:4fc01daae5a5 77
Kojto 99:dbbf35b96557 78 #ifdef USB_OTG_GLPMCFG_LPMEN
Kojto 99:dbbf35b96557 79 /* Device LPM suspend state */
Kojto 99:dbbf35b96557 80 typedef enum
Kojto 99:dbbf35b96557 81 {
Kojto 122:f9eeca106725 82 LPM_L0 = 0x00U, /* on */
Kojto 122:f9eeca106725 83 LPM_L1 = 0x01U, /* LPM L1 sleep */
Kojto 122:f9eeca106725 84 LPM_L2 = 0x02U, /* suspend */
Kojto 122:f9eeca106725 85 LPM_L3 = 0x03U /* off */
Kojto 99:dbbf35b96557 86 }PCD_LPM_StateTypeDef;
Kojto 99:dbbf35b96557 87 #endif /* USB_OTG_GLPMCFG_LPMEN */
bogdanm 92:4fc01daae5a5 88
bogdanm 92:4fc01daae5a5 89 typedef USB_OTG_GlobalTypeDef PCD_TypeDef;
bogdanm 92:4fc01daae5a5 90 typedef USB_OTG_CfgTypeDef PCD_InitTypeDef;
Kojto 122:f9eeca106725 91 typedef USB_OTG_EPTypeDef PCD_EPTypeDef ;
bogdanm 92:4fc01daae5a5 92
bogdanm 92:4fc01daae5a5 93 /**
bogdanm 92:4fc01daae5a5 94 * @brief PCD Handle Structure definition
<> 132:9baf128c2fab 95 */
<> 132:9baf128c2fab 96
<> 132:9baf128c2fab 97 typedef struct
<> 132:9baf128c2fab 98 {
<> 132:9baf128c2fab 99 HAL_LockTypeDef Lock;
<> 132:9baf128c2fab 100 } PCD_EPLockDef;
<> 132:9baf128c2fab 101
bogdanm 92:4fc01daae5a5 102 typedef struct
bogdanm 92:4fc01daae5a5 103 {
Kojto 122:f9eeca106725 104 PCD_TypeDef *Instance; /*!< Register base address */
Kojto 99:dbbf35b96557 105 PCD_InitTypeDef Init; /*!< PCD required parameters */
Kojto 99:dbbf35b96557 106 PCD_EPTypeDef IN_ep[15]; /*!< IN endpoint parameters */
Kojto 122:f9eeca106725 107 PCD_EPTypeDef OUT_ep[15]; /*!< OUT endpoint parameters */
<> 132:9baf128c2fab 108 HAL_LockTypeDef Lock; /*!< PCD peripheral status */
<> 132:9baf128c2fab 109 PCD_EPLockDef EPLock[15]; /*!< PCD endpoint peripheral status */
Kojto 99:dbbf35b96557 110 __IO PCD_StateTypeDef State; /*!< PCD communication state */
Kojto 99:dbbf35b96557 111 uint32_t Setup[12]; /*!< Setup packet buffer */
Kojto 99:dbbf35b96557 112 #ifdef USB_OTG_GLPMCFG_LPMEN
Kojto 99:dbbf35b96557 113 PCD_LPM_StateTypeDef LPM_State; /*!< LPM State */
Kojto 99:dbbf35b96557 114 uint32_t BESL;
Kojto 122:f9eeca106725 115 uint32_t lpm_active; /*!< Enable or disable the Link Power Management .
Kojto 99:dbbf35b96557 116 This parameter can be set to ENABLE or DISABLE */
Kojto 99:dbbf35b96557 117 #endif /* USB_OTG_GLPMCFG_LPMEN */
Kojto 110:165afa46840b 118 #ifdef USB_OTG_GCCFG_BCDEN
Kojto 122:f9eeca106725 119 uint32_t battery_charging_active; /*!< Enable or disable Battery charging.
Kojto 122:f9eeca106725 120 This parameter can be set to ENABLE or DISABLE */
Kojto 110:165afa46840b 121 #endif /* USB_OTG_GCCFG_BCDEN */
Kojto 122:f9eeca106725 122 void *pData; /*!< Pointer to upper stack Handler */
bogdanm 92:4fc01daae5a5 123 } PCD_HandleTypeDef;
Kojto 99:dbbf35b96557 124
Kojto 99:dbbf35b96557 125 /**
Kojto 99:dbbf35b96557 126 * @}
Kojto 99:dbbf35b96557 127 */
Kojto 99:dbbf35b96557 128
Kojto 99:dbbf35b96557 129 /* Include PCD HAL Extension module */
Kojto 99:dbbf35b96557 130 #include "stm32f4xx_hal_pcd_ex.h"
Kojto 99:dbbf35b96557 131
bogdanm 92:4fc01daae5a5 132 /* Exported constants --------------------------------------------------------*/
Kojto 99:dbbf35b96557 133 /** @defgroup PCD_Exported_Constants PCD Exported Constants
bogdanm 92:4fc01daae5a5 134 * @{
bogdanm 92:4fc01daae5a5 135 */
bogdanm 92:4fc01daae5a5 136
Kojto 99:dbbf35b96557 137 /** @defgroup PCD_Speed PCD Speed
bogdanm 92:4fc01daae5a5 138 * @{
bogdanm 92:4fc01daae5a5 139 */
Kojto 122:f9eeca106725 140 #define PCD_SPEED_HIGH 0U
Kojto 122:f9eeca106725 141 #define PCD_SPEED_HIGH_IN_FULL 1U
Kojto 122:f9eeca106725 142 #define PCD_SPEED_FULL 2U
bogdanm 92:4fc01daae5a5 143 /**
bogdanm 92:4fc01daae5a5 144 * @}
bogdanm 92:4fc01daae5a5 145 */
bogdanm 92:4fc01daae5a5 146
Kojto 99:dbbf35b96557 147 /** @defgroup PCD_PHY_Module PCD PHY Module
bogdanm 92:4fc01daae5a5 148 * @{
bogdanm 92:4fc01daae5a5 149 */
Kojto 122:f9eeca106725 150 #define PCD_PHY_ULPI 1U
Kojto 122:f9eeca106725 151 #define PCD_PHY_EMBEDDED 2U
bogdanm 92:4fc01daae5a5 152 /**
bogdanm 92:4fc01daae5a5 153 * @}
bogdanm 92:4fc01daae5a5 154 */
Kojto 110:165afa46840b 155
Kojto 106:ba1f97679dad 156 /** @defgroup PCD_Turnaround_Timeout Turnaround Timeout Value
Kojto 106:ba1f97679dad 157 * @{
Kojto 106:ba1f97679dad 158 */
Kojto 106:ba1f97679dad 159 #ifndef USBD_HS_TRDT_VALUE
Kojto 122:f9eeca106725 160 #define USBD_HS_TRDT_VALUE 9U
Kojto 106:ba1f97679dad 161 #endif /* USBD_HS_TRDT_VALUE */
Kojto 106:ba1f97679dad 162 #ifndef USBD_FS_TRDT_VALUE
Kojto 122:f9eeca106725 163 #define USBD_FS_TRDT_VALUE 5U
Kojto 106:ba1f97679dad 164 #endif /* USBD_FS_TRDT_VALUE */
Kojto 106:ba1f97679dad 165 /**
Kojto 106:ba1f97679dad 166 * @}
Kojto 106:ba1f97679dad 167 */
Kojto 106:ba1f97679dad 168
bogdanm 92:4fc01daae5a5 169 /**
bogdanm 92:4fc01daae5a5 170 * @}
bogdanm 92:4fc01daae5a5 171 */
bogdanm 92:4fc01daae5a5 172
Kojto 99:dbbf35b96557 173 /* Exported macros -----------------------------------------------------------*/
Kojto 99:dbbf35b96557 174 /** @defgroup PCD_Exported_Macros PCD Exported Macros
bogdanm 92:4fc01daae5a5 175 * @brief macros to handle interrupts and specific clock configurations
bogdanm 92:4fc01daae5a5 176 * @{
bogdanm 92:4fc01daae5a5 177 */
bogdanm 92:4fc01daae5a5 178 #define __HAL_PCD_ENABLE(__HANDLE__) USB_EnableGlobalInt ((__HANDLE__)->Instance)
bogdanm 92:4fc01daae5a5 179 #define __HAL_PCD_DISABLE(__HANDLE__) USB_DisableGlobalInt ((__HANDLE__)->Instance)
Kojto 122:f9eeca106725 180
bogdanm 92:4fc01daae5a5 181 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__))
Kojto 110:165afa46840b 182 #define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__))
Kojto 122:f9eeca106725 183 #define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U)
bogdanm 92:4fc01daae5a5 184
bogdanm 92:4fc01daae5a5 185 #define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= \
Kojto 99:dbbf35b96557 186 ~(USB_OTG_PCGCCTL_STOPCLK)
bogdanm 92:4fc01daae5a5 187
bogdanm 92:4fc01daae5a5 188 #define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK
Kojto 122:f9eeca106725 189
Kojto 122:f9eeca106725 190 #define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) ((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE))&0x10U)
Kojto 122:f9eeca106725 191
Kojto 122:f9eeca106725 192 #define USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE ((uint32_t)0x08U)
Kojto 122:f9eeca106725 193 #define USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE ((uint32_t)0x0CU)
Kojto 122:f9eeca106725 194 #define USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE ((uint32_t)0x10U)
Kojto 99:dbbf35b96557 195
Kojto 122:f9eeca106725 196 #define USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE ((uint32_t)0x08U)
Kojto 122:f9eeca106725 197 #define USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE ((uint32_t)0x0CU)
Kojto 122:f9eeca106725 198 #define USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE ((uint32_t)0x10U)
bogdanm 92:4fc01daae5a5 199
Kojto 122:f9eeca106725 200 #define USB_OTG_HS_WAKEUP_EXTI_LINE ((uint32_t)0x00100000U) /*!< External interrupt line 20 Connected to the USB HS EXTI Line */
Kojto 122:f9eeca106725 201 #define USB_OTG_FS_WAKEUP_EXTI_LINE ((uint32_t)0x00040000U) /*!< External interrupt line 18 Connected to the USB FS EXTI Line */
bogdanm 92:4fc01daae5a5 202
Kojto 99:dbbf35b96557 203 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= (USB_OTG_HS_WAKEUP_EXTI_LINE)
Kojto 99:dbbf35b96557 204 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE)
Kojto 99:dbbf35b96557 205 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_HS_WAKEUP_EXTI_LINE)
Kojto 99:dbbf35b96557 206 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = (USB_OTG_HS_WAKEUP_EXTI_LINE)
bogdanm 92:4fc01daae5a5 207
Kojto 122:f9eeca106725 208 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_EDGE() do{EXTI->FTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 209 EXTI->RTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE;\
Kojto 122:f9eeca106725 210 }while(0)
bogdanm 92:4fc01daae5a5 211
Kojto 122:f9eeca106725 212 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_FALLING_EDGE() do{EXTI->FTSR |= (USB_OTG_HS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 213 EXTI->RTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 214 }while(0)
Kojto 122:f9eeca106725 215
Kojto 122:f9eeca106725 216 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE() do{EXTI->RTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 217 EXTI->FTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 218 EXTI->RTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE;\
Kojto 122:f9eeca106725 219 EXTI->FTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE;\
Kojto 122:f9eeca106725 220 }while(0)
bogdanm 92:4fc01daae5a5 221
Kojto 99:dbbf35b96557 222 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= USB_OTG_FS_WAKEUP_EXTI_LINE)
Kojto 122:f9eeca106725 223
Kojto 99:dbbf35b96557 224 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= USB_OTG_FS_WAKEUP_EXTI_LINE
Kojto 99:dbbf35b96557 225 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE)
Kojto 99:dbbf35b96557 226 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_FS_WAKEUP_EXTI_LINE)
Kojto 99:dbbf35b96557 227 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = USB_OTG_FS_WAKEUP_EXTI_LINE
Kojto 99:dbbf35b96557 228
Kojto 122:f9eeca106725 229 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_EDGE() do{EXTI->FTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 230 EXTI->RTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE;\
Kojto 122:f9eeca106725 231 }while(0)
bogdanm 92:4fc01daae5a5 232
Kojto 122:f9eeca106725 233 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_FALLING_EDGE() do{EXTI->FTSR |= (USB_OTG_FS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 234 EXTI->RTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 235 }while(0)
bogdanm 92:4fc01daae5a5 236
Kojto 122:f9eeca106725 237 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE() do{EXTI->RTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 238 EXTI->FTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
Kojto 122:f9eeca106725 239 EXTI->RTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE;\
Kojto 122:f9eeca106725 240 EXTI->FTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE;\
Kojto 122:f9eeca106725 241 }while(0)
Kojto 122:f9eeca106725 242
Kojto 110:165afa46840b 243 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= USB_OTG_FS_WAKEUP_EXTI_LINE)
Kojto 106:ba1f97679dad 244 /**
Kojto 106:ba1f97679dad 245 * @}
Kojto 110:165afa46840b 246 */
bogdanm 92:4fc01daae5a5 247
Kojto 99:dbbf35b96557 248 /* Exported functions --------------------------------------------------------*/
Kojto 99:dbbf35b96557 249 /** @addtogroup PCD_Exported_Functions PCD Exported Functions
Kojto 99:dbbf35b96557 250 * @{
Kojto 99:dbbf35b96557 251 */
bogdanm 92:4fc01daae5a5 252
Kojto 99:dbbf35b96557 253 /* Initialization/de-initialization functions ********************************/
Kojto 99:dbbf35b96557 254 /** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions
Kojto 99:dbbf35b96557 255 * @{
Kojto 99:dbbf35b96557 256 */
Kojto 99:dbbf35b96557 257 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 258 HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 259 void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 260 void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 261 /**
bogdanm 92:4fc01daae5a5 262 * @}
bogdanm 92:4fc01daae5a5 263 */
bogdanm 92:4fc01daae5a5 264
Kojto 99:dbbf35b96557 265 /* I/O operation functions ***************************************************/
Kojto 99:dbbf35b96557 266 /* Non-Blocking mode: Interrupt */
Kojto 110:165afa46840b 267 /** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions
Kojto 99:dbbf35b96557 268 * @{
Kojto 99:dbbf35b96557 269 */
Kojto 99:dbbf35b96557 270 /* Non-Blocking mode: Interrupt */
bogdanm 92:4fc01daae5a5 271 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 272 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 273 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 274
bogdanm 92:4fc01daae5a5 275 void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
bogdanm 92:4fc01daae5a5 276 void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
bogdanm 92:4fc01daae5a5 277 void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 278 void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 279 void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 280 void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 281 void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 282 void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
bogdanm 92:4fc01daae5a5 283 void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
bogdanm 92:4fc01daae5a5 284 void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 285 void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 286 /**
Kojto 99:dbbf35b96557 287 * @}
Kojto 99:dbbf35b96557 288 */
bogdanm 92:4fc01daae5a5 289
Kojto 99:dbbf35b96557 290 /* Peripheral Control functions **********************************************/
Kojto 99:dbbf35b96557 291 /** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions
Kojto 99:dbbf35b96557 292 * @{
Kojto 99:dbbf35b96557 293 */
bogdanm 92:4fc01daae5a5 294 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 295 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd);
bogdanm 92:4fc01daae5a5 296 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address);
bogdanm 92:4fc01daae5a5 297 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type);
bogdanm 92:4fc01daae5a5 298 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
bogdanm 92:4fc01daae5a5 299 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
bogdanm 92:4fc01daae5a5 300 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
bogdanm 92:4fc01daae5a5 301 uint16_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
bogdanm 92:4fc01daae5a5 302 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
bogdanm 92:4fc01daae5a5 303 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
bogdanm 92:4fc01daae5a5 304 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
Kojto 99:dbbf35b96557 305 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 306 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 307 /**
Kojto 99:dbbf35b96557 308 * @}
Kojto 99:dbbf35b96557 309 */
Kojto 99:dbbf35b96557 310
Kojto 99:dbbf35b96557 311 /* Peripheral State functions ************************************************/
Kojto 99:dbbf35b96557 312 /** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions
Kojto 99:dbbf35b96557 313 * @{
Kojto 99:dbbf35b96557 314 */
Kojto 99:dbbf35b96557 315 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd);
Kojto 99:dbbf35b96557 316 /**
Kojto 99:dbbf35b96557 317 * @}
Kojto 99:dbbf35b96557 318 */
bogdanm 92:4fc01daae5a5 319
Kojto 99:dbbf35b96557 320 /**
Kojto 99:dbbf35b96557 321 * @}
Kojto 106:ba1f97679dad 322 */
Kojto 106:ba1f97679dad 323
Kojto 106:ba1f97679dad 324 /* Private macros ------------------------------------------------------------*/
Kojto 106:ba1f97679dad 325 /** @defgroup PCD_Private_Macros PCD Private Macros
Kojto 106:ba1f97679dad 326 * @{
Kojto 106:ba1f97679dad 327 */
bogdanm 92:4fc01daae5a5 328
bogdanm 92:4fc01daae5a5 329 /**
bogdanm 92:4fc01daae5a5 330 * @}
bogdanm 92:4fc01daae5a5 331 */
bogdanm 92:4fc01daae5a5 332
bogdanm 92:4fc01daae5a5 333 /**
bogdanm 92:4fc01daae5a5 334 * @}
bogdanm 92:4fc01daae5a5 335 */
bogdanm 92:4fc01daae5a5 336
Kojto 110:165afa46840b 337 /**
Kojto 110:165afa46840b 338 * @}
Kojto 110:165afa46840b 339 */
Kojto 110:165afa46840b 340 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||
Kojto 122:f9eeca106725 341 STM32F401xC || STM32F401xE || STM32F411xE || STM32F446xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Rx ||
Kojto 122:f9eeca106725 342 STM32F412Vx || STM32F412Cx */
bogdanm 92:4fc01daae5a5 343 #ifdef __cplusplus
bogdanm 92:4fc01daae5a5 344 }
bogdanm 92:4fc01daae5a5 345 #endif
bogdanm 92:4fc01daae5a5 346
bogdanm 92:4fc01daae5a5 347
bogdanm 92:4fc01daae5a5 348 #endif /* __STM32F4xx_HAL_PCD_H */
bogdanm 92:4fc01daae5a5 349
bogdanm 92:4fc01daae5a5 350 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/