mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
186:707f6e361f3e
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file stm32l0xx_hal_pcd_ex.c
<> 144:ef7eb2e8f9f7 4 * @author MCD Application Team
<> 144:ef7eb2e8f9f7 5 * @brief Extended PCD HAL module driver.
<> 144:ef7eb2e8f9f7 6 * This file provides firmware functions to manage the following
<> 144:ef7eb2e8f9f7 7 * functionalities of the USB Peripheral Controller:
<> 144:ef7eb2e8f9f7 8 * + Configururation of the PMA for EP
<> 144:ef7eb2e8f9f7 9 *
<> 144:ef7eb2e8f9f7 10 ******************************************************************************
<> 144:ef7eb2e8f9f7 11 * @attention
<> 144:ef7eb2e8f9f7 12 *
<> 144:ef7eb2e8f9f7 13 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
<> 144:ef7eb2e8f9f7 14 *
<> 144:ef7eb2e8f9f7 15 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 16 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 17 * 1. Redistributions of source code must retain the above copyright notice,
<> 144:ef7eb2e8f9f7 18 * this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 19 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 144:ef7eb2e8f9f7 20 * this list of conditions and the following disclaimer in the documentation
<> 144:ef7eb2e8f9f7 21 * and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 22 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 144:ef7eb2e8f9f7 23 * may be used to endorse or promote products derived from this software
<> 144:ef7eb2e8f9f7 24 * without specific prior written permission.
<> 144:ef7eb2e8f9f7 25 *
<> 144:ef7eb2e8f9f7 26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 27 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 144:ef7eb2e8f9f7 30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 144:ef7eb2e8f9f7 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 144:ef7eb2e8f9f7 32 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 144:ef7eb2e8f9f7 33 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 144:ef7eb2e8f9f7 34 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 144:ef7eb2e8f9f7 35 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 36 *
<> 144:ef7eb2e8f9f7 37 ******************************************************************************
<> 144:ef7eb2e8f9f7 38 */
<> 144:ef7eb2e8f9f7 39
<> 144:ef7eb2e8f9f7 40 #if !defined(STM32L011xx) && !defined(STM32L021xx) && !defined (STM32L031xx) && !defined (STM32L041xx) && !defined (STM32L051xx) && !defined (STM32L061xx) && !defined (STM32L071xx) && !defined (STM32L081xx)
<> 144:ef7eb2e8f9f7 41 /* Includes ------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 42 #include "stm32l0xx_hal.h"
<> 144:ef7eb2e8f9f7 43 #ifdef HAL_PCD_MODULE_ENABLED
<> 144:ef7eb2e8f9f7 44 /** @addtogroup STM32L0xx_HAL_Driver
<> 144:ef7eb2e8f9f7 45 * @{
<> 144:ef7eb2e8f9f7 46 */
<> 144:ef7eb2e8f9f7 47
<> 144:ef7eb2e8f9f7 48 /** @addtogroup PCDEx
<> 144:ef7eb2e8f9f7 49 * @brief PCDEx HAL module driver
<> 144:ef7eb2e8f9f7 50 * @{
<> 144:ef7eb2e8f9f7 51 */
<> 144:ef7eb2e8f9f7 52
<> 144:ef7eb2e8f9f7 53
<> 144:ef7eb2e8f9f7 54
<> 144:ef7eb2e8f9f7 55 /* Private typedef -----------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 56 /* Private define ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 57 /* Private macro -------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 58 /* Private variables ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 59 /* Private function prototypes -----------------------------------------------*/
<> 144:ef7eb2e8f9f7 60 /* Private functions ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 61
<> 144:ef7eb2e8f9f7 62
<> 144:ef7eb2e8f9f7 63 /** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
<> 144:ef7eb2e8f9f7 64 * @{
<> 144:ef7eb2e8f9f7 65 */
<> 144:ef7eb2e8f9f7 66
<> 144:ef7eb2e8f9f7 67 /** @addtogroup PCDEx__Exported_Functions_Group1
<> 144:ef7eb2e8f9f7 68 * @brief Initialization and Configuration functions
<> 144:ef7eb2e8f9f7 69 *
<> 144:ef7eb2e8f9f7 70 @verbatim
<> 144:ef7eb2e8f9f7 71 ===============================================================================
<> 144:ef7eb2e8f9f7 72 ##### Peripheral extended features functions #####
<> 144:ef7eb2e8f9f7 73 ===============================================================================
<> 144:ef7eb2e8f9f7 74 @endverbatim
<> 144:ef7eb2e8f9f7 75 * @{
<> 144:ef7eb2e8f9f7 76 */
<> 144:ef7eb2e8f9f7 77
<> 144:ef7eb2e8f9f7 78 /**
<> 144:ef7eb2e8f9f7 79 * @brief Configure PMA for EP
<> 144:ef7eb2e8f9f7 80 * @param hpcd : Device instance
<> 144:ef7eb2e8f9f7 81 * @param ep_addr: endpoint address
<> 144:ef7eb2e8f9f7 82 * @param ep_kind: endpoint Kind
<> 144:ef7eb2e8f9f7 83 * USB_SNG_BUF: Single Buffer used
<> 144:ef7eb2e8f9f7 84 * USB_DBL_BUF: Double Buffer used
<> 144:ef7eb2e8f9f7 85 * @param pmaadress: EP address in The PMA: In case of single buffer endpoint
<> 144:ef7eb2e8f9f7 86 * this parameter is 16-bit value providing the address
<> 144:ef7eb2e8f9f7 87 * in PMA allocated to endpoint.
<> 144:ef7eb2e8f9f7 88 * In case of double buffer endpoint this parameter
<> 144:ef7eb2e8f9f7 89 * is a 32-bit value providing the endpoint buffer 0 address
<> 144:ef7eb2e8f9f7 90 * in the LSB part of 32-bit value and endpoint buffer 1 address
<> 144:ef7eb2e8f9f7 91 * in the MSB part of 32-bit value.
<> 144:ef7eb2e8f9f7 92 * @retval : status
<> 144:ef7eb2e8f9f7 93 */
<> 144:ef7eb2e8f9f7 94
<> 144:ef7eb2e8f9f7 95
<> 144:ef7eb2e8f9f7 96 HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd,
<> 144:ef7eb2e8f9f7 97 uint16_t ep_addr,
<> 144:ef7eb2e8f9f7 98 uint16_t ep_kind,
<> 144:ef7eb2e8f9f7 99 uint32_t pmaadress)
<> 144:ef7eb2e8f9f7 100
<> 144:ef7eb2e8f9f7 101 {
<> 144:ef7eb2e8f9f7 102 PCD_EPTypeDef *ep;
<> 144:ef7eb2e8f9f7 103
<> 144:ef7eb2e8f9f7 104 /* initialize ep structure*/
<> 151:5eaa88a5bcc7 105 if ((0x80U & ep_addr) == 0x80U)
<> 144:ef7eb2e8f9f7 106 {
<> 151:5eaa88a5bcc7 107 ep = &hpcd->IN_ep[ep_addr & 0x7FU];
<> 144:ef7eb2e8f9f7 108 }
<> 144:ef7eb2e8f9f7 109 else
<> 144:ef7eb2e8f9f7 110 {
<> 144:ef7eb2e8f9f7 111 ep = &hpcd->OUT_ep[ep_addr];
<> 144:ef7eb2e8f9f7 112 }
<> 144:ef7eb2e8f9f7 113
<> 144:ef7eb2e8f9f7 114 /* Here we check if the endpoint is single or double Buffer*/
<> 144:ef7eb2e8f9f7 115 if (ep_kind == PCD_SNG_BUF)
<> 144:ef7eb2e8f9f7 116 {
<> 144:ef7eb2e8f9f7 117 /*Single Buffer*/
<> 151:5eaa88a5bcc7 118 ep->doublebuffer = 0U;
<> 144:ef7eb2e8f9f7 119 /*Configure te PMA*/
<> 144:ef7eb2e8f9f7 120 ep->pmaadress = (uint16_t)pmaadress;
<> 144:ef7eb2e8f9f7 121 }
<> 144:ef7eb2e8f9f7 122 else /*USB_DBL_BUF*/
<> 144:ef7eb2e8f9f7 123 {
<> 144:ef7eb2e8f9f7 124 /*Double Buffer Endpoint*/
<> 151:5eaa88a5bcc7 125 ep->doublebuffer = 1U;
<> 144:ef7eb2e8f9f7 126 /*Configure the PMA*/
<> 151:5eaa88a5bcc7 127 ep->pmaaddr0 = pmaadress & 0xFFFFU;
<> 151:5eaa88a5bcc7 128 ep->pmaaddr1 = (pmaadress & 0xFFFF0000U) >> 16U;
<> 144:ef7eb2e8f9f7 129 }
<> 144:ef7eb2e8f9f7 130
<> 144:ef7eb2e8f9f7 131 return HAL_OK;
<> 144:ef7eb2e8f9f7 132 }
Anna Bridge 186:707f6e361f3e 133
Anna Bridge 186:707f6e361f3e 134 /**
Anna Bridge 186:707f6e361f3e 135 * @brief Activate BatteryCharging feature.
Anna Bridge 186:707f6e361f3e 136 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 137 * @retval HAL status
Anna Bridge 186:707f6e361f3e 138 */
Anna Bridge 186:707f6e361f3e 139 HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd)
Anna Bridge 186:707f6e361f3e 140 {
Anna Bridge 186:707f6e361f3e 141 USB_TypeDef *USBx = hpcd->Instance;
Anna Bridge 186:707f6e361f3e 142 hpcd->battery_charging_active = ENABLE;
Anna Bridge 186:707f6e361f3e 143
Anna Bridge 186:707f6e361f3e 144 USBx->BCDR |= (USB_BCDR_BCDEN);
Anna Bridge 186:707f6e361f3e 145 /* Enable DCD : Data Contact Detect */
Anna Bridge 186:707f6e361f3e 146 USBx->BCDR |= (USB_BCDR_DCDEN);
Anna Bridge 186:707f6e361f3e 147
Anna Bridge 186:707f6e361f3e 148 return HAL_OK;
Anna Bridge 186:707f6e361f3e 149 }
Anna Bridge 186:707f6e361f3e 150
Anna Bridge 186:707f6e361f3e 151 /**
Anna Bridge 186:707f6e361f3e 152 * @brief Deactivate BatteryCharging feature.
Anna Bridge 186:707f6e361f3e 153 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 154 * @retval HAL status
Anna Bridge 186:707f6e361f3e 155 */
Anna Bridge 186:707f6e361f3e 156 HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd)
Anna Bridge 186:707f6e361f3e 157 {
Anna Bridge 186:707f6e361f3e 158 USB_TypeDef *USBx = hpcd->Instance;
Anna Bridge 186:707f6e361f3e 159 hpcd->battery_charging_active = DISABLE;
Anna Bridge 186:707f6e361f3e 160
Anna Bridge 186:707f6e361f3e 161 USBx->BCDR &= ~(USB_BCDR_BCDEN);
Anna Bridge 186:707f6e361f3e 162 return HAL_OK;
Anna Bridge 186:707f6e361f3e 163 }
Anna Bridge 186:707f6e361f3e 164
Anna Bridge 186:707f6e361f3e 165 /**
Anna Bridge 186:707f6e361f3e 166 * @brief Handle BatteryCharging Process.
Anna Bridge 186:707f6e361f3e 167 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 168 * @retval HAL status
Anna Bridge 186:707f6e361f3e 169 */
Anna Bridge 186:707f6e361f3e 170 void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd)
Anna Bridge 186:707f6e361f3e 171 {
Anna Bridge 186:707f6e361f3e 172 USB_TypeDef *USBx = hpcd->Instance;
Anna Bridge 186:707f6e361f3e 173 uint32_t tickstart = HAL_GetTick();
Anna Bridge 186:707f6e361f3e 174
Anna Bridge 186:707f6e361f3e 175 /* Wait Detect flag or a timeout is happen*/
Anna Bridge 186:707f6e361f3e 176 while ((USBx->BCDR & USB_BCDR_DCDET) == 0)
Anna Bridge 186:707f6e361f3e 177 {
Anna Bridge 186:707f6e361f3e 178 /* Check for the Timeout */
Anna Bridge 186:707f6e361f3e 179 if((HAL_GetTick() - tickstart ) > 1000)
Anna Bridge 186:707f6e361f3e 180 {
Anna Bridge 186:707f6e361f3e 181 HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR);
Anna Bridge 186:707f6e361f3e 182 return;
Anna Bridge 186:707f6e361f3e 183 }
Anna Bridge 186:707f6e361f3e 184 }
Anna Bridge 186:707f6e361f3e 185
Anna Bridge 186:707f6e361f3e 186 HAL_Delay(300);
Anna Bridge 186:707f6e361f3e 187
Anna Bridge 186:707f6e361f3e 188 /* Data Pin Contact ? Check Detect flag */
Anna Bridge 186:707f6e361f3e 189 if (USBx->BCDR & USB_BCDR_DCDET)
Anna Bridge 186:707f6e361f3e 190 {
Anna Bridge 186:707f6e361f3e 191 HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CONTACT_DETECTION);
Anna Bridge 186:707f6e361f3e 192 }
Anna Bridge 186:707f6e361f3e 193 /* Primary detection: checks if connected to Standard Downstream Port
Anna Bridge 186:707f6e361f3e 194 (without charging capability) */
Anna Bridge 186:707f6e361f3e 195 USBx->BCDR &= ~(USB_BCDR_DCDEN);
Anna Bridge 186:707f6e361f3e 196 USBx->BCDR |= (USB_BCDR_PDEN);
Anna Bridge 186:707f6e361f3e 197 HAL_Delay(300);
Anna Bridge 186:707f6e361f3e 198
Anna Bridge 186:707f6e361f3e 199 /* If Charger detect ? */
Anna Bridge 186:707f6e361f3e 200 if (USBx->BCDR & USB_BCDR_PDET)
Anna Bridge 186:707f6e361f3e 201 {
Anna Bridge 186:707f6e361f3e 202 /* Start secondary detection to check connection to Charging Downstream
Anna Bridge 186:707f6e361f3e 203 Port or Dedicated Charging Port */
Anna Bridge 186:707f6e361f3e 204 USBx->BCDR &= ~(USB_BCDR_PDEN);
Anna Bridge 186:707f6e361f3e 205 USBx->BCDR |= (USB_BCDR_SDEN);
Anna Bridge 186:707f6e361f3e 206 HAL_Delay(300);
Anna Bridge 186:707f6e361f3e 207
Anna Bridge 186:707f6e361f3e 208 /* If CDP ? */
Anna Bridge 186:707f6e361f3e 209 if (USBx->BCDR & USB_BCDR_SDET)
Anna Bridge 186:707f6e361f3e 210 {
Anna Bridge 186:707f6e361f3e 211 /* Dedicated Downstream Port DCP */
Anna Bridge 186:707f6e361f3e 212 HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT);
Anna Bridge 186:707f6e361f3e 213 }
Anna Bridge 186:707f6e361f3e 214 else
Anna Bridge 186:707f6e361f3e 215 {
Anna Bridge 186:707f6e361f3e 216 /* Charging Downstream Port CDP */
Anna Bridge 186:707f6e361f3e 217 HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT);
Anna Bridge 186:707f6e361f3e 218 }
Anna Bridge 186:707f6e361f3e 219 }
Anna Bridge 186:707f6e361f3e 220 else
Anna Bridge 186:707f6e361f3e 221 {
Anna Bridge 186:707f6e361f3e 222 /* Standard Downstream Port */
Anna Bridge 186:707f6e361f3e 223 HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT);
Anna Bridge 186:707f6e361f3e 224 }
Anna Bridge 186:707f6e361f3e 225 /* Battery Charging capability discovery finished
Anna Bridge 186:707f6e361f3e 226 Start Enumeration*/
Anna Bridge 186:707f6e361f3e 227 HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
Anna Bridge 186:707f6e361f3e 228 }
Anna Bridge 186:707f6e361f3e 229
Anna Bridge 186:707f6e361f3e 230 /**
Anna Bridge 186:707f6e361f3e 231 * @brief Activate LPM feature.
Anna Bridge 186:707f6e361f3e 232 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 233 * @retval HAL status
Anna Bridge 186:707f6e361f3e 234 */
Anna Bridge 186:707f6e361f3e 235 HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd)
Anna Bridge 186:707f6e361f3e 236 {
Anna Bridge 186:707f6e361f3e 237
Anna Bridge 186:707f6e361f3e 238 USB_TypeDef *USBx = hpcd->Instance;
Anna Bridge 186:707f6e361f3e 239 hpcd->lpm_active = ENABLE;
Anna Bridge 186:707f6e361f3e 240 hpcd->LPM_State = LPM_L0;
Anna Bridge 186:707f6e361f3e 241
Anna Bridge 186:707f6e361f3e 242 USBx->LPMCSR |= (USB_LPMCSR_LMPEN);
Anna Bridge 186:707f6e361f3e 243 USBx->LPMCSR |= (USB_LPMCSR_LPMACK);
Anna Bridge 186:707f6e361f3e 244
Anna Bridge 186:707f6e361f3e 245
Anna Bridge 186:707f6e361f3e 246 return HAL_OK;
Anna Bridge 186:707f6e361f3e 247 }
Anna Bridge 186:707f6e361f3e 248
Anna Bridge 186:707f6e361f3e 249 /**
Anna Bridge 186:707f6e361f3e 250 * @brief Deactivate LPM feature.
Anna Bridge 186:707f6e361f3e 251 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 252 * @retval HAL status
Anna Bridge 186:707f6e361f3e 253 */
Anna Bridge 186:707f6e361f3e 254 HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd)
Anna Bridge 186:707f6e361f3e 255 {
Anna Bridge 186:707f6e361f3e 256 USB_TypeDef *USBx = hpcd->Instance;
Anna Bridge 186:707f6e361f3e 257
Anna Bridge 186:707f6e361f3e 258 hpcd->lpm_active = DISABLE;
Anna Bridge 186:707f6e361f3e 259
Anna Bridge 186:707f6e361f3e 260 USBx->LPMCSR &= ~ (USB_LPMCSR_LMPEN);
Anna Bridge 186:707f6e361f3e 261 USBx->LPMCSR &= ~ (USB_LPMCSR_LPMACK);
Anna Bridge 186:707f6e361f3e 262
Anna Bridge 186:707f6e361f3e 263 return HAL_OK;
Anna Bridge 186:707f6e361f3e 264 }
Anna Bridge 186:707f6e361f3e 265
Anna Bridge 186:707f6e361f3e 266 /**
Anna Bridge 186:707f6e361f3e 267 * @brief Send LPM message to user layer callback.
Anna Bridge 186:707f6e361f3e 268 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 269 * @param msg: LPM message
Anna Bridge 186:707f6e361f3e 270 * @retval HAL status
Anna Bridge 186:707f6e361f3e 271 */
Anna Bridge 186:707f6e361f3e 272 __weak void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
Anna Bridge 186:707f6e361f3e 273 {
Anna Bridge 186:707f6e361f3e 274 /* Prevent unused argument(s) compilation warning */
Anna Bridge 186:707f6e361f3e 275 UNUSED(hpcd);
Anna Bridge 186:707f6e361f3e 276 UNUSED(msg);
Anna Bridge 186:707f6e361f3e 277
Anna Bridge 186:707f6e361f3e 278 /* NOTE : This function should not be modified, when the callback is needed,
Anna Bridge 186:707f6e361f3e 279 the HAL_PCDEx_LPM_Callback could be implemented in the user file
Anna Bridge 186:707f6e361f3e 280 */
Anna Bridge 186:707f6e361f3e 281 }
Anna Bridge 186:707f6e361f3e 282
Anna Bridge 186:707f6e361f3e 283 /**
Anna Bridge 186:707f6e361f3e 284 * @brief Send BatteryCharging message to user layer callback.
Anna Bridge 186:707f6e361f3e 285 * @param hpcd: PCD handle
Anna Bridge 186:707f6e361f3e 286 * @param msg: LPM message
Anna Bridge 186:707f6e361f3e 287 * @retval HAL status
Anna Bridge 186:707f6e361f3e 288 */
Anna Bridge 186:707f6e361f3e 289 __weak void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg)
Anna Bridge 186:707f6e361f3e 290 {
Anna Bridge 186:707f6e361f3e 291 /* Prevent unused argument(s) compilation warning */
Anna Bridge 186:707f6e361f3e 292 UNUSED(hpcd);
Anna Bridge 186:707f6e361f3e 293 UNUSED(msg);
Anna Bridge 186:707f6e361f3e 294
Anna Bridge 186:707f6e361f3e 295 /* NOTE : This function should not be modified, when the callback is needed,
Anna Bridge 186:707f6e361f3e 296 the HAL_PCDEx_BCD_Callback could be implemented in the user file
Anna Bridge 186:707f6e361f3e 297 */
Anna Bridge 186:707f6e361f3e 298 }
Anna Bridge 186:707f6e361f3e 299
<> 144:ef7eb2e8f9f7 300 /**
<> 144:ef7eb2e8f9f7 301 * @}
<> 144:ef7eb2e8f9f7 302 */
<> 144:ef7eb2e8f9f7 303
<> 144:ef7eb2e8f9f7 304
<> 144:ef7eb2e8f9f7 305 /**
<> 144:ef7eb2e8f9f7 306 * @}
<> 144:ef7eb2e8f9f7 307 */
<> 144:ef7eb2e8f9f7 308
<> 144:ef7eb2e8f9f7 309 /**
<> 144:ef7eb2e8f9f7 310 * @}
<> 144:ef7eb2e8f9f7 311 */
<> 144:ef7eb2e8f9f7 312
<> 144:ef7eb2e8f9f7 313 /**
<> 144:ef7eb2e8f9f7 314 * @}
<> 144:ef7eb2e8f9f7 315 */
<> 144:ef7eb2e8f9f7 316 #endif /* HAL_PCD_MODULE_ENABLED */
<> 144:ef7eb2e8f9f7 317 #endif /* #if !defined(STM32L011xx) && !defined(STM32L021xx) && !defined (STM32L031xx) && !defined (STM32L041xx) && !defined (STM32L051xx) && !defined (STM32L061xx) && !defined (STM32L071xx) && !defined (STM32L081xx) */
<> 144:ef7eb2e8f9f7 318 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/