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:
AnnaBridge
Date:
Wed Jun 21 17:31:38 2017 +0100
Revision:
145:64910690c574
Child:
161:aa5281ff4a02
Release 145 of the mbed library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 145:64910690c574 1 /**
AnnaBridge 145:64910690c574 2 ******************************************************************************
AnnaBridge 145:64910690c574 3 * @file stm32l4xx_ll_usb.h
AnnaBridge 145:64910690c574 4 * @author MCD Application Team
AnnaBridge 145:64910690c574 5 * @version V1.7.1
AnnaBridge 145:64910690c574 6 * @date 21-April-2017
AnnaBridge 145:64910690c574 7 * @brief Header file of USB Core HAL module.
AnnaBridge 145:64910690c574 8 ******************************************************************************
AnnaBridge 145:64910690c574 9 * @attention
AnnaBridge 145:64910690c574 10 *
AnnaBridge 145:64910690c574 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 145:64910690c574 12 *
AnnaBridge 145:64910690c574 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 145:64910690c574 14 * are permitted provided that the following conditions are met:
AnnaBridge 145:64910690c574 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 145:64910690c574 16 * this list of conditions and the following disclaimer.
AnnaBridge 145:64910690c574 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 145:64910690c574 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 145:64910690c574 19 * and/or other materials provided with the distribution.
AnnaBridge 145:64910690c574 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 145:64910690c574 21 * may be used to endorse or promote products derived from this software
AnnaBridge 145:64910690c574 22 * without specific prior written permission.
AnnaBridge 145:64910690c574 23 *
AnnaBridge 145:64910690c574 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 145:64910690c574 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 145:64910690c574 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 145:64910690c574 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 145:64910690c574 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 145:64910690c574 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 145:64910690c574 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 145:64910690c574 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 145:64910690c574 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 145:64910690c574 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 145:64910690c574 34 *
AnnaBridge 145:64910690c574 35 ******************************************************************************
AnnaBridge 145:64910690c574 36 */
AnnaBridge 145:64910690c574 37
AnnaBridge 145:64910690c574 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 145:64910690c574 39 #ifndef __STM32L4xx_LL_USB_H
AnnaBridge 145:64910690c574 40 #define __STM32L4xx_LL_USB_H
AnnaBridge 145:64910690c574 41
AnnaBridge 145:64910690c574 42 #ifdef __cplusplus
AnnaBridge 145:64910690c574 43 extern "C" {
AnnaBridge 145:64910690c574 44 #endif
AnnaBridge 145:64910690c574 45
AnnaBridge 145:64910690c574 46 #if defined(STM32L432xx) || defined(STM32L433xx) || defined(STM32L442xx) || defined(STM32L443xx) || \
AnnaBridge 145:64910690c574 47 defined(STM32L452xx) || defined(STM32L462xx) || \
AnnaBridge 145:64910690c574 48 defined(STM32L475xx) || defined(STM32L476xx) || defined(STM32L485xx) || defined(STM32L486xx) || \
AnnaBridge 145:64910690c574 49 defined(STM32L496xx) || defined(STM32L4A6xx)
AnnaBridge 145:64910690c574 50
AnnaBridge 145:64910690c574 51 /* Includes ------------------------------------------------------------------*/
AnnaBridge 145:64910690c574 52 #include "stm32l4xx_hal_def.h"
AnnaBridge 145:64910690c574 53
AnnaBridge 145:64910690c574 54 /** @addtogroup STM32L4xx_HAL
AnnaBridge 145:64910690c574 55 * @{
AnnaBridge 145:64910690c574 56 */
AnnaBridge 145:64910690c574 57
AnnaBridge 145:64910690c574 58 /** @addtogroup USB_Core
AnnaBridge 145:64910690c574 59 * @{
AnnaBridge 145:64910690c574 60 */
AnnaBridge 145:64910690c574 61
AnnaBridge 145:64910690c574 62 /* Exported types ------------------------------------------------------------*/
AnnaBridge 145:64910690c574 63
AnnaBridge 145:64910690c574 64 /**
AnnaBridge 145:64910690c574 65 * @brief USB Mode definition
AnnaBridge 145:64910690c574 66 */
AnnaBridge 145:64910690c574 67 typedef enum
AnnaBridge 145:64910690c574 68 {
AnnaBridge 145:64910690c574 69 USB_DEVICE_MODE = 0,
AnnaBridge 145:64910690c574 70 USB_HOST_MODE = 1,
AnnaBridge 145:64910690c574 71 USB_DRD_MODE = 2
AnnaBridge 145:64910690c574 72
AnnaBridge 145:64910690c574 73 }USB_ModeTypeDef;
AnnaBridge 145:64910690c574 74
AnnaBridge 145:64910690c574 75 #if defined (USB_OTG_FS)
AnnaBridge 145:64910690c574 76 /**
AnnaBridge 145:64910690c574 77 * @brief URB States definition
AnnaBridge 145:64910690c574 78 */
AnnaBridge 145:64910690c574 79 typedef enum {
AnnaBridge 145:64910690c574 80 URB_IDLE = 0,
AnnaBridge 145:64910690c574 81 URB_DONE,
AnnaBridge 145:64910690c574 82 URB_NOTREADY,
AnnaBridge 145:64910690c574 83 URB_NYET,
AnnaBridge 145:64910690c574 84 URB_ERROR,
AnnaBridge 145:64910690c574 85 URB_STALL
AnnaBridge 145:64910690c574 86
AnnaBridge 145:64910690c574 87 }USB_OTG_URBStateTypeDef;
AnnaBridge 145:64910690c574 88
AnnaBridge 145:64910690c574 89 /**
AnnaBridge 145:64910690c574 90 * @brief Host channel States definition
AnnaBridge 145:64910690c574 91 */
AnnaBridge 145:64910690c574 92 typedef enum {
AnnaBridge 145:64910690c574 93 HC_IDLE = 0,
AnnaBridge 145:64910690c574 94 HC_XFRC,
AnnaBridge 145:64910690c574 95 HC_HALTED,
AnnaBridge 145:64910690c574 96 HC_NAK,
AnnaBridge 145:64910690c574 97 HC_NYET,
AnnaBridge 145:64910690c574 98 HC_STALL,
AnnaBridge 145:64910690c574 99 HC_XACTERR,
AnnaBridge 145:64910690c574 100 HC_BBLERR,
AnnaBridge 145:64910690c574 101 HC_DATATGLERR
AnnaBridge 145:64910690c574 102
AnnaBridge 145:64910690c574 103 }USB_OTG_HCStateTypeDef;
AnnaBridge 145:64910690c574 104
AnnaBridge 145:64910690c574 105 /**
AnnaBridge 145:64910690c574 106 * @brief PCD Initialization Structure definition
AnnaBridge 145:64910690c574 107 */
AnnaBridge 145:64910690c574 108 typedef struct
AnnaBridge 145:64910690c574 109 {
AnnaBridge 145:64910690c574 110 uint32_t dev_endpoints; /*!< Device Endpoints number.
AnnaBridge 145:64910690c574 111 This parameter depends on the used USB core.
AnnaBridge 145:64910690c574 112 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 113
AnnaBridge 145:64910690c574 114 uint32_t Host_channels; /*!< Host Channels number.
AnnaBridge 145:64910690c574 115 This parameter Depends on the used USB core.
AnnaBridge 145:64910690c574 116 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 117
AnnaBridge 145:64910690c574 118 uint32_t speed; /*!< USB Core speed.
AnnaBridge 145:64910690c574 119 This parameter can be any value of @ref USB_Core_Speed_ */
AnnaBridge 145:64910690c574 120
AnnaBridge 145:64910690c574 121 uint32_t dma_enable; /*!< Enable or disable of the USB embedded DMA. */
AnnaBridge 145:64910690c574 122
AnnaBridge 145:64910690c574 123 uint32_t ep0_mps; /*!< Set the Endpoint 0 Max Packet size.
AnnaBridge 145:64910690c574 124 This parameter can be any value of @ref USB_EP0_MPS_ */
AnnaBridge 145:64910690c574 125
AnnaBridge 145:64910690c574 126 uint32_t phy_itface; /*!< Select the used PHY interface.
AnnaBridge 145:64910690c574 127 This parameter can be any value of @ref USB_Core_PHY_ */
AnnaBridge 145:64910690c574 128
AnnaBridge 145:64910690c574 129 uint32_t Sof_enable; /*!< Enable or disable the output of the SOF signal. */
AnnaBridge 145:64910690c574 130
AnnaBridge 145:64910690c574 131 uint32_t low_power_enable; /*!< Enable or disable the low power mode. */
AnnaBridge 145:64910690c574 132
AnnaBridge 145:64910690c574 133 uint32_t lpm_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 145:64910690c574 134
AnnaBridge 145:64910690c574 135 uint32_t battery_charging_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 145:64910690c574 136
AnnaBridge 145:64910690c574 137 uint32_t vbus_sensing_enable; /*!< Enable or disable the VBUS Sensing feature. */
AnnaBridge 145:64910690c574 138
AnnaBridge 145:64910690c574 139 uint32_t use_dedicated_ep1; /*!< Enable or disable the use of the dedicated EP1 interrupt. */
AnnaBridge 145:64910690c574 140
AnnaBridge 145:64910690c574 141 uint32_t use_external_vbus; /*!< Enable or disable the use of the external VBUS. */
AnnaBridge 145:64910690c574 142
AnnaBridge 145:64910690c574 143 }USB_OTG_CfgTypeDef;
AnnaBridge 145:64910690c574 144
AnnaBridge 145:64910690c574 145 typedef struct
AnnaBridge 145:64910690c574 146 {
AnnaBridge 145:64910690c574 147 uint8_t num; /*!< Endpoint number
AnnaBridge 145:64910690c574 148 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 149
AnnaBridge 145:64910690c574 150 uint8_t is_in; /*!< Endpoint direction
AnnaBridge 145:64910690c574 151 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 152
AnnaBridge 145:64910690c574 153 uint8_t is_stall; /*!< Endpoint stall condition
AnnaBridge 145:64910690c574 154 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 155
AnnaBridge 145:64910690c574 156 uint8_t type; /*!< Endpoint type
AnnaBridge 145:64910690c574 157 This parameter can be any value of @ref USB_EP_Type_ */
AnnaBridge 145:64910690c574 158
AnnaBridge 145:64910690c574 159 uint8_t data_pid_start; /*!< Initial data PID
AnnaBridge 145:64910690c574 160 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 161
AnnaBridge 145:64910690c574 162 uint8_t even_odd_frame; /*!< IFrame parity
AnnaBridge 145:64910690c574 163 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 164
AnnaBridge 145:64910690c574 165 uint16_t tx_fifo_num; /*!< Transmission FIFO number
AnnaBridge 145:64910690c574 166 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 167
AnnaBridge 145:64910690c574 168 uint32_t maxpacket; /*!< Endpoint Max packet size
AnnaBridge 145:64910690c574 169 This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
AnnaBridge 145:64910690c574 170
AnnaBridge 145:64910690c574 171 uint8_t *xfer_buff; /*!< Pointer to transfer buffer */
AnnaBridge 145:64910690c574 172
AnnaBridge 145:64910690c574 173 uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address */
AnnaBridge 145:64910690c574 174
AnnaBridge 145:64910690c574 175 uint32_t xfer_len; /*!< Current transfer length */
AnnaBridge 145:64910690c574 176
AnnaBridge 145:64910690c574 177 uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer */
AnnaBridge 145:64910690c574 178
AnnaBridge 145:64910690c574 179 }USB_OTG_EPTypeDef;
AnnaBridge 145:64910690c574 180
AnnaBridge 145:64910690c574 181 typedef struct
AnnaBridge 145:64910690c574 182 {
AnnaBridge 145:64910690c574 183 uint8_t dev_addr ; /*!< USB device address.
AnnaBridge 145:64910690c574 184 This parameter must be a number between Min_Data = 1 and Max_Data = 255 */
AnnaBridge 145:64910690c574 185
AnnaBridge 145:64910690c574 186 uint8_t ch_num; /*!< Host channel number.
AnnaBridge 145:64910690c574 187 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 188
AnnaBridge 145:64910690c574 189 uint8_t ep_num; /*!< Endpoint number.
AnnaBridge 145:64910690c574 190 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 191
AnnaBridge 145:64910690c574 192 uint8_t ep_is_in; /*!< Endpoint direction
AnnaBridge 145:64910690c574 193 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 194
AnnaBridge 145:64910690c574 195 uint8_t speed; /*!< USB Host speed.
AnnaBridge 145:64910690c574 196 This parameter can be any value of @ref USB_Core_Speed_ */
AnnaBridge 145:64910690c574 197
AnnaBridge 145:64910690c574 198 uint8_t do_ping; /*!< Enable or disable the use of the PING protocol for HS mode. */
AnnaBridge 145:64910690c574 199
AnnaBridge 145:64910690c574 200 uint8_t process_ping; /*!< Execute the PING protocol for HS mode. */
AnnaBridge 145:64910690c574 201
AnnaBridge 145:64910690c574 202 uint8_t ep_type; /*!< Endpoint Type.
AnnaBridge 145:64910690c574 203 This parameter can be any value of @ref USB_EP_Type_ */
AnnaBridge 145:64910690c574 204
AnnaBridge 145:64910690c574 205 uint16_t max_packet; /*!< Endpoint Max packet size.
AnnaBridge 145:64910690c574 206 This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
AnnaBridge 145:64910690c574 207
AnnaBridge 145:64910690c574 208 uint8_t data_pid; /*!< Initial data PID.
AnnaBridge 145:64910690c574 209 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 210
AnnaBridge 145:64910690c574 211 uint8_t *xfer_buff; /*!< Pointer to transfer buffer. */
AnnaBridge 145:64910690c574 212
AnnaBridge 145:64910690c574 213 uint32_t xfer_len; /*!< Current transfer length. */
AnnaBridge 145:64910690c574 214
AnnaBridge 145:64910690c574 215 uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer. */
AnnaBridge 145:64910690c574 216
AnnaBridge 145:64910690c574 217 uint8_t toggle_in; /*!< IN transfer current toggle flag.
AnnaBridge 145:64910690c574 218 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 219
AnnaBridge 145:64910690c574 220 uint8_t toggle_out; /*!< OUT transfer current toggle flag
AnnaBridge 145:64910690c574 221 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 222
AnnaBridge 145:64910690c574 223 uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address. */
AnnaBridge 145:64910690c574 224
AnnaBridge 145:64910690c574 225 uint32_t ErrCnt; /*!< Host channel error count.*/
AnnaBridge 145:64910690c574 226
AnnaBridge 145:64910690c574 227 USB_OTG_URBStateTypeDef urb_state; /*!< URB state.
AnnaBridge 145:64910690c574 228 This parameter can be any value of @ref USB_OTG_URBStateTypeDef */
AnnaBridge 145:64910690c574 229
AnnaBridge 145:64910690c574 230 USB_OTG_HCStateTypeDef state; /*!< Host Channel state.
AnnaBridge 145:64910690c574 231 This parameter can be any value of @ref USB_OTG_HCStateTypeDef */
AnnaBridge 145:64910690c574 232
AnnaBridge 145:64910690c574 233 }USB_OTG_HCTypeDef;
AnnaBridge 145:64910690c574 234 #endif /* USB_OTG_FS */
AnnaBridge 145:64910690c574 235
AnnaBridge 145:64910690c574 236 #if defined (USB)
AnnaBridge 145:64910690c574 237 /**
AnnaBridge 145:64910690c574 238 * @brief USB Initialization Structure definition
AnnaBridge 145:64910690c574 239 */
AnnaBridge 145:64910690c574 240 typedef struct
AnnaBridge 145:64910690c574 241 {
AnnaBridge 145:64910690c574 242 uint32_t dev_endpoints; /*!< Device Endpoints number.
AnnaBridge 145:64910690c574 243 This parameter depends on the used USB core.
AnnaBridge 145:64910690c574 244 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 245
AnnaBridge 145:64910690c574 246 uint32_t speed; /*!< USB Core speed.
AnnaBridge 145:64910690c574 247 This parameter can be any value of @ref USB_Core_Speed */
AnnaBridge 145:64910690c574 248
AnnaBridge 145:64910690c574 249 uint32_t dma_enable; /*!< Enable or disable of the USB embedded DMA. */
AnnaBridge 145:64910690c574 250
AnnaBridge 145:64910690c574 251 uint32_t ep0_mps; /*!< Set the Endpoint 0 Max Packet size.
AnnaBridge 145:64910690c574 252 This parameter can be any value of @ref USB_EP0_MPS */
AnnaBridge 145:64910690c574 253
AnnaBridge 145:64910690c574 254 uint32_t phy_itface; /*!< Select the used PHY interface.
AnnaBridge 145:64910690c574 255 This parameter can be any value of @ref USB_Core_PHY */
AnnaBridge 145:64910690c574 256
AnnaBridge 145:64910690c574 257 uint32_t Sof_enable; /*!< Enable or disable the output of the SOF signal. */
AnnaBridge 145:64910690c574 258
AnnaBridge 145:64910690c574 259 uint32_t low_power_enable; /*!< Enable or disable Low Power mode */
AnnaBridge 145:64910690c574 260
AnnaBridge 145:64910690c574 261 uint32_t lpm_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 145:64910690c574 262
AnnaBridge 145:64910690c574 263 uint32_t battery_charging_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 145:64910690c574 264 } USB_CfgTypeDef;
AnnaBridge 145:64910690c574 265
AnnaBridge 145:64910690c574 266 typedef struct
AnnaBridge 145:64910690c574 267 {
AnnaBridge 145:64910690c574 268 uint8_t num; /*!< Endpoint number
AnnaBridge 145:64910690c574 269 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 145:64910690c574 270
AnnaBridge 145:64910690c574 271 uint8_t is_in; /*!< Endpoint direction
AnnaBridge 145:64910690c574 272 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 273
AnnaBridge 145:64910690c574 274 uint8_t is_stall; /*!< Endpoint stall condition
AnnaBridge 145:64910690c574 275 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 145:64910690c574 276
AnnaBridge 145:64910690c574 277 uint8_t type; /*!< Endpoint type
AnnaBridge 145:64910690c574 278 This parameter can be any value of @ref USB_EP_Type */
AnnaBridge 145:64910690c574 279
AnnaBridge 145:64910690c574 280 uint16_t pmaadress; /*!< PMA Address
AnnaBridge 145:64910690c574 281 This parameter can be any value between Min_addr = 0 and Max_addr = 1K */
AnnaBridge 145:64910690c574 282
AnnaBridge 145:64910690c574 283 uint16_t pmaaddr0; /*!< PMA Address0
AnnaBridge 145:64910690c574 284 This parameter can be any value between Min_addr = 0 and Max_addr = 1K */
AnnaBridge 145:64910690c574 285
AnnaBridge 145:64910690c574 286 uint16_t pmaaddr1; /*!< PMA Address1
AnnaBridge 145:64910690c574 287 This parameter can be any value between Min_addr = 0 and Max_addr = 1K */
AnnaBridge 145:64910690c574 288
AnnaBridge 145:64910690c574 289 uint8_t doublebuffer; /*!< Double buffer enable
AnnaBridge 145:64910690c574 290 This parameter can be 0 or 1 */
AnnaBridge 145:64910690c574 291
AnnaBridge 145:64910690c574 292 uint16_t tx_fifo_num; /*!< This parameter is not required by USB Device FS peripheral, it is used
AnnaBridge 145:64910690c574 293 only by USB OTG FS peripheral
AnnaBridge 145:64910690c574 294 This parameter is added to ensure compatibility across USB peripherals */
AnnaBridge 145:64910690c574 295
AnnaBridge 145:64910690c574 296 uint32_t maxpacket; /*!< Endpoint Max packet size
AnnaBridge 145:64910690c574 297 This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
AnnaBridge 145:64910690c574 298
AnnaBridge 145:64910690c574 299 uint8_t *xfer_buff; /*!< Pointer to transfer buffer */
AnnaBridge 145:64910690c574 300
AnnaBridge 145:64910690c574 301 uint32_t xfer_len; /*!< Current transfer length */
AnnaBridge 145:64910690c574 302
AnnaBridge 145:64910690c574 303 uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer */
AnnaBridge 145:64910690c574 304
AnnaBridge 145:64910690c574 305 } USB_EPTypeDef;
AnnaBridge 145:64910690c574 306 #endif /* USB */
AnnaBridge 145:64910690c574 307
AnnaBridge 145:64910690c574 308 /* Exported constants --------------------------------------------------------*/
AnnaBridge 145:64910690c574 309
AnnaBridge 145:64910690c574 310 /** @defgroup PCD_Exported_Constants PCD Exported Constants
AnnaBridge 145:64910690c574 311 * @{
AnnaBridge 145:64910690c574 312 */
AnnaBridge 145:64910690c574 313 #if defined (USB_OTG_FS)
AnnaBridge 145:64910690c574 314 /** @defgroup USB_Core_Mode_ USB Core Mode
AnnaBridge 145:64910690c574 315 * @{
AnnaBridge 145:64910690c574 316 */
AnnaBridge 145:64910690c574 317 #define USB_OTG_MODE_DEVICE 0
AnnaBridge 145:64910690c574 318 #define USB_OTG_MODE_HOST 1
AnnaBridge 145:64910690c574 319 #define USB_OTG_MODE_DRD 2
AnnaBridge 145:64910690c574 320 /**
AnnaBridge 145:64910690c574 321 * @}
AnnaBridge 145:64910690c574 322 */
AnnaBridge 145:64910690c574 323
AnnaBridge 145:64910690c574 324 /** @defgroup USB_Core_Speed_ USB Core Speed
AnnaBridge 145:64910690c574 325 * @{
AnnaBridge 145:64910690c574 326 */
AnnaBridge 145:64910690c574 327 #define USB_OTG_SPEED_HIGH 0
AnnaBridge 145:64910690c574 328 #define USB_OTG_SPEED_HIGH_IN_FULL 1
AnnaBridge 145:64910690c574 329 #define USB_OTG_SPEED_LOW 2
AnnaBridge 145:64910690c574 330 #define USB_OTG_SPEED_FULL 3
AnnaBridge 145:64910690c574 331 /**
AnnaBridge 145:64910690c574 332 * @}
AnnaBridge 145:64910690c574 333 */
AnnaBridge 145:64910690c574 334
AnnaBridge 145:64910690c574 335 /** @defgroup USB_Core_PHY_ USB Core PHY
AnnaBridge 145:64910690c574 336 * @{
AnnaBridge 145:64910690c574 337 */
AnnaBridge 145:64910690c574 338 #define USB_OTG_EMBEDDED_PHY 1
AnnaBridge 145:64910690c574 339 /**
AnnaBridge 145:64910690c574 340 * @}
AnnaBridge 145:64910690c574 341 */
AnnaBridge 145:64910690c574 342
AnnaBridge 145:64910690c574 343 /** @defgroup USB_Core_MPS_ USB Core MPS
AnnaBridge 145:64910690c574 344 * @{
AnnaBridge 145:64910690c574 345 */
AnnaBridge 145:64910690c574 346 #define USB_OTG_FS_MAX_PACKET_SIZE 64
AnnaBridge 145:64910690c574 347 #define USB_OTG_MAX_EP0_SIZE 64
AnnaBridge 145:64910690c574 348 /**
AnnaBridge 145:64910690c574 349 * @}
AnnaBridge 145:64910690c574 350 */
AnnaBridge 145:64910690c574 351
AnnaBridge 145:64910690c574 352 /** @defgroup USB_Core_Phy_Frequency_ USB Core Phy Frequency
AnnaBridge 145:64910690c574 353 * @{
AnnaBridge 145:64910690c574 354 */
AnnaBridge 145:64910690c574 355 #define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ (0 << 1)
AnnaBridge 145:64910690c574 356 #define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ (1 << 1)
AnnaBridge 145:64910690c574 357 #define DSTS_ENUMSPD_LS_PHY_6MHZ (2 << 1)
AnnaBridge 145:64910690c574 358 #define DSTS_ENUMSPD_FS_PHY_48MHZ (3 << 1)
AnnaBridge 145:64910690c574 359 /**
AnnaBridge 145:64910690c574 360 * @}
AnnaBridge 145:64910690c574 361 */
AnnaBridge 145:64910690c574 362
AnnaBridge 145:64910690c574 363 /** @defgroup USB_CORE_Frame_Interval_ USB CORE Frame Interval
AnnaBridge 145:64910690c574 364 * @{
AnnaBridge 145:64910690c574 365 */
AnnaBridge 145:64910690c574 366 #define DCFG_FRAME_INTERVAL_80 0
AnnaBridge 145:64910690c574 367 #define DCFG_FRAME_INTERVAL_85 1
AnnaBridge 145:64910690c574 368 #define DCFG_FRAME_INTERVAL_90 2
AnnaBridge 145:64910690c574 369 #define DCFG_FRAME_INTERVAL_95 3
AnnaBridge 145:64910690c574 370 /**
AnnaBridge 145:64910690c574 371 * @}
AnnaBridge 145:64910690c574 372 */
AnnaBridge 145:64910690c574 373
AnnaBridge 145:64910690c574 374 /** @defgroup USB_EP0_MPS_ USB EP0 MPS
AnnaBridge 145:64910690c574 375 * @{
AnnaBridge 145:64910690c574 376 */
AnnaBridge 145:64910690c574 377 #define DEP0CTL_MPS_64 0
AnnaBridge 145:64910690c574 378 #define DEP0CTL_MPS_32 1
AnnaBridge 145:64910690c574 379 #define DEP0CTL_MPS_16 2
AnnaBridge 145:64910690c574 380 #define DEP0CTL_MPS_8 3
AnnaBridge 145:64910690c574 381 /**
AnnaBridge 145:64910690c574 382 * @}
AnnaBridge 145:64910690c574 383 */
AnnaBridge 145:64910690c574 384
AnnaBridge 145:64910690c574 385 /** @defgroup USB_EP_Speed_ USB EP Speed
AnnaBridge 145:64910690c574 386 * @{
AnnaBridge 145:64910690c574 387 */
AnnaBridge 145:64910690c574 388 #define EP_SPEED_LOW 0
AnnaBridge 145:64910690c574 389 #define EP_SPEED_FULL 1
AnnaBridge 145:64910690c574 390 #define EP_SPEED_HIGH 2
AnnaBridge 145:64910690c574 391 /**
AnnaBridge 145:64910690c574 392 * @}
AnnaBridge 145:64910690c574 393 */
AnnaBridge 145:64910690c574 394
AnnaBridge 145:64910690c574 395 /** @defgroup USB_EP_Type_ USB EP Type
AnnaBridge 145:64910690c574 396 * @{
AnnaBridge 145:64910690c574 397 */
AnnaBridge 145:64910690c574 398 #define EP_TYPE_CTRL 0
AnnaBridge 145:64910690c574 399 #define EP_TYPE_ISOC 1
AnnaBridge 145:64910690c574 400 #define EP_TYPE_BULK 2
AnnaBridge 145:64910690c574 401 #define EP_TYPE_INTR 3
AnnaBridge 145:64910690c574 402 #define EP_TYPE_MSK 3
AnnaBridge 145:64910690c574 403 /**
AnnaBridge 145:64910690c574 404 * @}
AnnaBridge 145:64910690c574 405 */
AnnaBridge 145:64910690c574 406
AnnaBridge 145:64910690c574 407 /** @defgroup USB_STS_Defines_ USB STS Defines
AnnaBridge 145:64910690c574 408 * @{
AnnaBridge 145:64910690c574 409 */
AnnaBridge 145:64910690c574 410 #define STS_GOUT_NAK 1
AnnaBridge 145:64910690c574 411 #define STS_DATA_UPDT 2
AnnaBridge 145:64910690c574 412 #define STS_XFER_COMP 3
AnnaBridge 145:64910690c574 413 #define STS_SETUP_COMP 4
AnnaBridge 145:64910690c574 414 #define STS_SETUP_UPDT 6
AnnaBridge 145:64910690c574 415 /**
AnnaBridge 145:64910690c574 416 * @}
AnnaBridge 145:64910690c574 417 */
AnnaBridge 145:64910690c574 418
AnnaBridge 145:64910690c574 419 /** @defgroup HCFG_SPEED_Defines_ HCFG SPEED Defines
AnnaBridge 145:64910690c574 420 * @{
AnnaBridge 145:64910690c574 421 */
AnnaBridge 145:64910690c574 422 #define HCFG_30_60_MHZ 0
AnnaBridge 145:64910690c574 423 #define HCFG_48_MHZ 1
AnnaBridge 145:64910690c574 424 #define HCFG_6_MHZ 2
AnnaBridge 145:64910690c574 425 /**
AnnaBridge 145:64910690c574 426 * @}
AnnaBridge 145:64910690c574 427 */
AnnaBridge 145:64910690c574 428
AnnaBridge 145:64910690c574 429 /** @defgroup HPRT0_PRTSPD_SPEED_Defines_ HPRT0 PRTSPD SPEED Defines
AnnaBridge 145:64910690c574 430 * @{
AnnaBridge 145:64910690c574 431 */
AnnaBridge 145:64910690c574 432 #define HPRT0_PRTSPD_HIGH_SPEED 0
AnnaBridge 145:64910690c574 433 #define HPRT0_PRTSPD_FULL_SPEED 1
AnnaBridge 145:64910690c574 434 #define HPRT0_PRTSPD_LOW_SPEED 2
AnnaBridge 145:64910690c574 435 /**
AnnaBridge 145:64910690c574 436 * @}
AnnaBridge 145:64910690c574 437 */
AnnaBridge 145:64910690c574 438
AnnaBridge 145:64910690c574 439 #define HCCHAR_CTRL 0
AnnaBridge 145:64910690c574 440 #define HCCHAR_ISOC 1
AnnaBridge 145:64910690c574 441 #define HCCHAR_BULK 2
AnnaBridge 145:64910690c574 442 #define HCCHAR_INTR 3
AnnaBridge 145:64910690c574 443
AnnaBridge 145:64910690c574 444 #define HC_PID_DATA0 0
AnnaBridge 145:64910690c574 445 #define HC_PID_DATA2 1
AnnaBridge 145:64910690c574 446 #define HC_PID_DATA1 2
AnnaBridge 145:64910690c574 447 #define HC_PID_SETUP 3
AnnaBridge 145:64910690c574 448
AnnaBridge 145:64910690c574 449 #define GRXSTS_PKTSTS_IN 2
AnnaBridge 145:64910690c574 450 #define GRXSTS_PKTSTS_IN_XFER_COMP 3
AnnaBridge 145:64910690c574 451 #define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5
AnnaBridge 145:64910690c574 452 #define GRXSTS_PKTSTS_CH_HALTED 7
AnnaBridge 145:64910690c574 453
AnnaBridge 145:64910690c574 454 #define USBx_PCGCCTL *(__IO uint32_t *)((uint32_t)USBx + USB_OTG_PCGCCTL_BASE)
AnnaBridge 145:64910690c574 455 #define USBx_HPRT0 *(__IO uint32_t *)((uint32_t)USBx + USB_OTG_HOST_PORT_BASE)
AnnaBridge 145:64910690c574 456
AnnaBridge 145:64910690c574 457 #define USBx_DEVICE ((USB_OTG_DeviceTypeDef *)((uint32_t )USBx + USB_OTG_DEVICE_BASE))
AnnaBridge 145:64910690c574 458 #define USBx_INEP(i) ((USB_OTG_INEndpointTypeDef *)((uint32_t)USBx + USB_OTG_IN_ENDPOINT_BASE + (i)*USB_OTG_EP_REG_SIZE))
AnnaBridge 145:64910690c574 459 #define USBx_OUTEP(i) ((USB_OTG_OUTEndpointTypeDef *)((uint32_t)USBx + USB_OTG_OUT_ENDPOINT_BASE + (i)*USB_OTG_EP_REG_SIZE))
AnnaBridge 145:64910690c574 460 #define USBx_DFIFO(i) *(__IO uint32_t *)((uint32_t)USBx + USB_OTG_FIFO_BASE + (i) * USB_OTG_FIFO_SIZE)
AnnaBridge 145:64910690c574 461
AnnaBridge 145:64910690c574 462 #define USBx_HOST ((USB_OTG_HostTypeDef *)((uint32_t )USBx + USB_OTG_HOST_BASE))
AnnaBridge 145:64910690c574 463 #define USBx_HC(i) ((USB_OTG_HostChannelTypeDef *)((uint32_t)USBx + USB_OTG_HOST_CHANNEL_BASE + (i)*USB_OTG_HOST_CHANNEL_SIZE))
AnnaBridge 145:64910690c574 464
AnnaBridge 145:64910690c574 465 #endif /* USB_OTG_FS */
AnnaBridge 145:64910690c574 466
AnnaBridge 145:64910690c574 467 #if defined (USB)
AnnaBridge 145:64910690c574 468 /** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
AnnaBridge 145:64910690c574 469 * @{
AnnaBridge 145:64910690c574 470 */
AnnaBridge 145:64910690c574 471 #define DEP0CTL_MPS_64 0
AnnaBridge 145:64910690c574 472 #define DEP0CTL_MPS_32 1
AnnaBridge 145:64910690c574 473 #define DEP0CTL_MPS_16 2
AnnaBridge 145:64910690c574 474 #define DEP0CTL_MPS_8 3
AnnaBridge 145:64910690c574 475 /**
AnnaBridge 145:64910690c574 476 * @}
AnnaBridge 145:64910690c574 477 */
AnnaBridge 145:64910690c574 478
AnnaBridge 145:64910690c574 479 /** @defgroup USB_LL_EP_Type USB Low Layer EP Type
AnnaBridge 145:64910690c574 480 * @{
AnnaBridge 145:64910690c574 481 */
AnnaBridge 145:64910690c574 482 #define EP_TYPE_CTRL 0
AnnaBridge 145:64910690c574 483 #define EP_TYPE_ISOC 1
AnnaBridge 145:64910690c574 484 #define EP_TYPE_BULK 2
AnnaBridge 145:64910690c574 485 #define EP_TYPE_INTR 3
AnnaBridge 145:64910690c574 486 #define EP_TYPE_MSK 3
AnnaBridge 145:64910690c574 487 /**
AnnaBridge 145:64910690c574 488 * @}
AnnaBridge 145:64910690c574 489 */
AnnaBridge 145:64910690c574 490
AnnaBridge 145:64910690c574 491 #define BTABLE_ADDRESS (0x000)
AnnaBridge 145:64910690c574 492 #endif /* USB */
AnnaBridge 145:64910690c574 493
AnnaBridge 145:64910690c574 494 /**
AnnaBridge 145:64910690c574 495 * @}
AnnaBridge 145:64910690c574 496 */
AnnaBridge 145:64910690c574 497
AnnaBridge 145:64910690c574 498 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 145:64910690c574 499 #if defined (USB_OTG_FS)
AnnaBridge 145:64910690c574 500 #define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK &= ~(__INTERRUPT__))
AnnaBridge 145:64910690c574 501 #define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK |= (__INTERRUPT__))
AnnaBridge 145:64910690c574 502
AnnaBridge 145:64910690c574 503 #define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_INEP(__EPNUM__)->DIEPINT = (__INTERRUPT__))
AnnaBridge 145:64910690c574 504 #define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__))
AnnaBridge 145:64910690c574 505 #endif /* USB_OTG_FS */
AnnaBridge 145:64910690c574 506
AnnaBridge 145:64910690c574 507 /* Exported functions --------------------------------------------------------*/
AnnaBridge 145:64910690c574 508 #if defined (USB_OTG_FS)
AnnaBridge 145:64910690c574 509 HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
AnnaBridge 145:64910690c574 510 HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
AnnaBridge 145:64910690c574 511 HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 512 HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 513 HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx , USB_ModeTypeDef mode);
AnnaBridge 145:64910690c574 514 HAL_StatusTypeDef USB_SetDevSpeed(USB_OTG_GlobalTypeDef *USBx , uint8_t speed);
AnnaBridge 145:64910690c574 515 HAL_StatusTypeDef USB_FlushRxFifo (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 516 HAL_StatusTypeDef USB_FlushTxFifo (USB_OTG_GlobalTypeDef *USBx, uint32_t num );
AnnaBridge 145:64910690c574 517 HAL_StatusTypeDef USB_ActivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 145:64910690c574 518 HAL_StatusTypeDef USB_DeactivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 145:64910690c574 519 HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 145:64910690c574 520 HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 145:64910690c574 521 HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep, uint8_t dma);
AnnaBridge 145:64910690c574 522 HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep, uint8_t dma);
AnnaBridge 145:64910690c574 523 HAL_StatusTypeDef USB_WritePacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len, uint8_t dma);
AnnaBridge 145:64910690c574 524 void * USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
AnnaBridge 145:64910690c574 525 HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep);
AnnaBridge 145:64910690c574 526 HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep);
AnnaBridge 145:64910690c574 527 HAL_StatusTypeDef USB_SetDevAddress (USB_OTG_GlobalTypeDef *USBx, uint8_t address);
AnnaBridge 145:64910690c574 528 HAL_StatusTypeDef USB_DevConnect (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 529 HAL_StatusTypeDef USB_DevDisconnect (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 530 HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 531 HAL_StatusTypeDef USB_ActivateSetup (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 532 HAL_StatusTypeDef USB_EP0_OutStart(USB_OTG_GlobalTypeDef *USBx, uint8_t dma, uint8_t *psetup);
AnnaBridge 145:64910690c574 533 uint8_t USB_GetDevSpeed(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 534 uint32_t USB_GetMode(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 535 uint32_t USB_ReadInterrupts (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 536 uint32_t USB_ReadDevAllOutEpInterrupt (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 537 uint32_t USB_ReadDevOutEPInterrupt (USB_OTG_GlobalTypeDef *USBx , uint8_t epnum);
AnnaBridge 145:64910690c574 538 uint32_t USB_ReadDevAllInEpInterrupt (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 539 uint32_t USB_ReadDevInEPInterrupt (USB_OTG_GlobalTypeDef *USBx , uint8_t epnum);
AnnaBridge 145:64910690c574 540 void USB_ClearInterrupts (USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
AnnaBridge 145:64910690c574 541
AnnaBridge 145:64910690c574 542 HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
AnnaBridge 145:64910690c574 543 HAL_StatusTypeDef USB_InitFSLSPClkSel(USB_OTG_GlobalTypeDef *USBx , uint8_t freq);
AnnaBridge 145:64910690c574 544 HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 545 HAL_StatusTypeDef USB_DriveVbus (USB_OTG_GlobalTypeDef *USBx, uint8_t state);
AnnaBridge 145:64910690c574 546 uint32_t USB_GetHostSpeed (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 547 uint32_t USB_GetCurrentFrame (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 548 HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx,
AnnaBridge 145:64910690c574 549 uint8_t ch_num,
AnnaBridge 145:64910690c574 550 uint8_t epnum,
AnnaBridge 145:64910690c574 551 uint8_t dev_address,
AnnaBridge 145:64910690c574 552 uint8_t speed,
AnnaBridge 145:64910690c574 553 uint8_t ep_type,
AnnaBridge 145:64910690c574 554 uint16_t mps);
AnnaBridge 145:64910690c574 555 HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDef *hc, uint8_t dma);
AnnaBridge 145:64910690c574 556 uint32_t USB_HC_ReadInterrupt (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 557 HAL_StatusTypeDef USB_HC_Halt(USB_OTG_GlobalTypeDef *USBx , uint8_t hc_num);
AnnaBridge 145:64910690c574 558 HAL_StatusTypeDef USB_DoPing(USB_OTG_GlobalTypeDef *USBx , uint8_t ch_num);
AnnaBridge 145:64910690c574 559 HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 560 HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 561 HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 145:64910690c574 562 #endif /* USB_OTG_FS */
AnnaBridge 145:64910690c574 563
AnnaBridge 145:64910690c574 564 #if defined (USB)
AnnaBridge 145:64910690c574 565 HAL_StatusTypeDef USB_CoreInit(USB_TypeDef *USBx, USB_CfgTypeDef Init);
AnnaBridge 145:64910690c574 566 HAL_StatusTypeDef USB_DevInit(USB_TypeDef *USBx, USB_CfgTypeDef Init);
AnnaBridge 145:64910690c574 567 HAL_StatusTypeDef USB_EnableGlobalInt(USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 568 HAL_StatusTypeDef USB_DisableGlobalInt(USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 569 HAL_StatusTypeDef USB_SetCurrentMode(USB_TypeDef *USBx , USB_ModeTypeDef mode);
AnnaBridge 145:64910690c574 570 HAL_StatusTypeDef USB_SetDevSpeed(USB_TypeDef *USBx , uint8_t speed);
AnnaBridge 145:64910690c574 571 HAL_StatusTypeDef USB_FlushRxFifo (USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 572 HAL_StatusTypeDef USB_FlushTxFifo (USB_TypeDef *USBx, uint32_t num );
AnnaBridge 145:64910690c574 573 HAL_StatusTypeDef USB_ActivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep);
AnnaBridge 145:64910690c574 574 HAL_StatusTypeDef USB_DeactivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep);
AnnaBridge 145:64910690c574 575 HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx , USB_EPTypeDef *ep ,uint8_t dma);
AnnaBridge 145:64910690c574 576 HAL_StatusTypeDef USB_WritePacket(USB_TypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len);
AnnaBridge 145:64910690c574 577 void * USB_ReadPacket(USB_TypeDef *USBx, uint8_t *dest, uint16_t len);
AnnaBridge 145:64910690c574 578 HAL_StatusTypeDef USB_EPSetStall(USB_TypeDef *USBx , USB_EPTypeDef *ep);
AnnaBridge 145:64910690c574 579 HAL_StatusTypeDef USB_EPClearStall(USB_TypeDef *USBx , USB_EPTypeDef *ep);
AnnaBridge 145:64910690c574 580 HAL_StatusTypeDef USB_SetDevAddress (USB_TypeDef *USBx, uint8_t address);
AnnaBridge 145:64910690c574 581 HAL_StatusTypeDef USB_DevConnect (USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 582 HAL_StatusTypeDef USB_DevDisconnect (USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 583 HAL_StatusTypeDef USB_StopDevice(USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 584 HAL_StatusTypeDef USB_EP0_OutStart(USB_TypeDef *USBx, uint8_t dma, uint8_t *psetup);
AnnaBridge 145:64910690c574 585 uint32_t USB_ReadInterrupts (USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 586 uint32_t USB_ReadDevAllOutEpInterrupt (USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 587 uint32_t USB_ReadDevOutEPInterrupt (USB_TypeDef *USBx , uint8_t epnum);
AnnaBridge 145:64910690c574 588 uint32_t USB_ReadDevAllInEpInterrupt (USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 589 uint32_t USB_ReadDevInEPInterrupt (USB_TypeDef *USBx , uint8_t epnum);
AnnaBridge 145:64910690c574 590 void USB_ClearInterrupts (USB_TypeDef *USBx, uint32_t interrupt);
AnnaBridge 145:64910690c574 591
AnnaBridge 145:64910690c574 592 HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 593 HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_TypeDef *USBx);
AnnaBridge 145:64910690c574 594 void USB_WritePMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
AnnaBridge 145:64910690c574 595 void USB_ReadPMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
AnnaBridge 145:64910690c574 596 #endif /* USB */
AnnaBridge 145:64910690c574 597 /**
AnnaBridge 145:64910690c574 598 * @}
AnnaBridge 145:64910690c574 599 */
AnnaBridge 145:64910690c574 600
AnnaBridge 145:64910690c574 601 /**
AnnaBridge 145:64910690c574 602 * @}
AnnaBridge 145:64910690c574 603 */
AnnaBridge 145:64910690c574 604
AnnaBridge 145:64910690c574 605 #endif /* STM32L432xx || STM32L433xx || STM32L442xx || STM32L443xx || */
AnnaBridge 145:64910690c574 606 /* STM32L452xx || STM32L462xx || */
AnnaBridge 145:64910690c574 607 /* STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx || */
AnnaBridge 145:64910690c574 608 /* STM32L496xx || STM32L4A6xx */
AnnaBridge 145:64910690c574 609
AnnaBridge 145:64910690c574 610 #ifdef __cplusplus
AnnaBridge 145:64910690c574 611 }
AnnaBridge 145:64910690c574 612 #endif
AnnaBridge 145:64910690c574 613
AnnaBridge 145:64910690c574 614
AnnaBridge 145:64910690c574 615 #endif /* __STM32L4xx_LL_USB_H */
AnnaBridge 145:64910690c574 616
AnnaBridge 145:64910690c574 617 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/