STM32L486xx HAL User Manual
stm32l4xx_hal_smartcard_ex.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l4xx_hal_smartcard_ex.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of SMARTCARD HAL Extended module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00010   *
00011   * Redistribution and use in source and binary forms, with or without modification,
00012   * are permitted provided that the following conditions are met:
00013   *   1. Redistributions of source code must retain the above copyright notice,
00014   *      this list of conditions and the following disclaimer.
00015   *   2. Redistributions in binary form must reproduce the above copyright notice,
00016   *      this list of conditions and the following disclaimer in the documentation
00017   *      and/or other materials provided with the distribution.
00018   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00019   *      may be used to endorse or promote products derived from this software
00020   *      without specific prior written permission.
00021   *
00022   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00025   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00026   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00027   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00028   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00030   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00031   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00032   *
00033   ******************************************************************************
00034   */
00035 
00036 /* Define to prevent recursive inclusion -------------------------------------*/
00037 #ifndef __STM32L4xx_HAL_SMARTCARD_EX_H
00038 #define __STM32L4xx_HAL_SMARTCARD_EX_H
00039 
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043 
00044 /* Includes ------------------------------------------------------------------*/
00045 #include "stm32l4xx_hal_def.h"
00046 
00047 /** @addtogroup STM32L4xx_HAL_Driver
00048   * @{
00049   */
00050 
00051 /** @addtogroup SMARTCARDEx
00052   * @{
00053   */
00054 
00055 /* Exported types ------------------------------------------------------------*/
00056 /* Exported constants --------------------------------------------------------*/
00057 
00058 /** @addtogroup SMARTCARDEx_Exported_Constants  SMARTCARD Extended Exported Constants
00059   * @{
00060   */
00061 
00062 /** @defgroup SMARTCARDEx_Transmission_Completion_Indication SMARTCARD Transmission Completion Indication
00063   * @{
00064   */
00065 #if defined(USART_TCBGT_SUPPORT)
00066 #define SMARTCARD_TCBGT      SMARTCARD_IT_TCBGT /*!< SMARTCARD transmission complete before guard time */
00067 #endif /* USART_TCBGT_SUPPORT */
00068 #define SMARTCARD_TC         SMARTCARD_IT_TC    /*!< SMARTCARD transmission complete (flag raised when guard time has elapsed) */
00069 /**
00070   * @}
00071   */
00072 
00073 /** @defgroup SMARTCARDEx_Advanced_Features_Initialization_Type SMARTCARD advanced feature initialization type
00074   * @{
00075   */
00076 #define SMARTCARD_ADVFEATURE_NO_INIT                 0x00000000U    /*!< No advanced feature initialization                  */
00077 #define SMARTCARD_ADVFEATURE_TXINVERT_INIT           0x00000001U    /*!< TX pin active level inversion                       */
00078 #define SMARTCARD_ADVFEATURE_RXINVERT_INIT           0x00000002U    /*!< RX pin active level inversion                       */
00079 #define SMARTCARD_ADVFEATURE_DATAINVERT_INIT         0x00000004U    /*!< Binary data inversion                               */
00080 #define SMARTCARD_ADVFEATURE_SWAP_INIT               0x00000008U    /*!< TX/RX pins swap                                     */
00081 #define SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT   0x00000010U    /*!< RX overrun disable                                  */
00082 #define SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT  0x00000020U    /*!< DMA disable on Reception Error                      */
00083 #define SMARTCARD_ADVFEATURE_MSBFIRST_INIT           0x00000080U    /*!< Most significant bit sent/received first            */
00084 #if defined(USART_TCBGT_SUPPORT)
00085 #define SMARTCARD_ADVFEATURE_TXCOMPLETION            0x00000100U    /*!< TX completion indication before of after guard time */
00086 #endif /* USART_TCBGT_SUPPORT */
00087 /**
00088   * @}
00089   */
00090 
00091 #if defined(USART_CR1_FIFOEN)
00092 /** @defgroup SMARTCARDEx_FIFO_mode SMARTCARDEx FIFO mode
00093   * @brief    SMARTCARD FIFO mode
00094   * @{
00095   */
00096 #define SMARTCARD_FIFOMODE_DISABLE        0x00000000U                   /*!< FIFO mode disable */
00097 #define SMARTCARD_FIFOMODE_ENABLE         USART_CR1_FIFOEN              /*!< FIFO mode enable  */
00098 /**
00099   * @}
00100   */
00101 
00102 /** @defgroup SMARTCARDEx_TXFIFO_threshold_level SMARTCARDEx TXFIFO threshold level
00103   * @brief    SMARTCARD TXFIFO level
00104   * @{
00105   */
00106 #define SMARTCARD_TXFIFO_THRESHOLD_1_8    0x00000000U                               /*!< TXFIFO reaches 1/8 of its depth */
00107 #define SMARTCARD_TXFIFO_THRESHOLD_1_4   USART_CR3_TXFTCFG_0                        /*!< TXFIFO reaches 1/4 of its depth */
00108 #define SMARTCARD_TXFIFO_THRESHOLD_1_2   USART_CR3_TXFTCFG_1                        /*!< TXFIFO reaches 1/2 of its depth */
00109 #define SMARTCARD_TXFIFO_THRESHOLD_3_4   (USART_CR3_TXFTCFG_0|USART_CR3_TXFTCFG_1)  /*!< TXFIFO reaches 3/4 of its depth */
00110 #define SMARTCARD_TXFIFO_THRESHOLD_7_8   USART_CR3_TXFTCFG_2                        /*!< TXFIFO reaches 7/8 of its depth */
00111 #define SMARTCARD_TXFIFO_THRESHOLD_8_8   (USART_CR3_TXFTCFG_2|USART_CR3_TXFTCFG_0)  /*!< TXFIFO becomes empty            */
00112 /**
00113   * @}
00114   */
00115 
00116 /** @defgroup SMARTCARDEx_RXFIFO_threshold_level SMARTCARDEx RXFIFO threshold level
00117   * @brief    SMARTCARD RXFIFO level
00118   * @{
00119   */
00120 #define SMARTCARD_RXFIFO_THRESHOLD_1_8   0x00000000U                                /*!< RXFIFO FIFO reaches 1/8 of its depth */
00121 #define SMARTCARD_RXFIFO_THRESHOLD_1_4   USART_CR3_RXFTCFG_0                        /*!< RXFIFO FIFO reaches 1/4 of its depth */
00122 #define SMARTCARD_RXFIFO_THRESHOLD_1_2   USART_CR3_RXFTCFG_1                        /*!< RXFIFO FIFO reaches 1/2 of its depth */
00123 #define SMARTCARD_RXFIFO_THRESHOLD_3_4   (USART_CR3_RXFTCFG_0|USART_CR3_RXFTCFG_1)  /*!< RXFIFO FIFO reaches 3/4 of its depth */
00124 #define SMARTCARD_RXFIFO_THRESHOLD_7_8   USART_CR3_RXFTCFG_2                        /*!< RXFIFO FIFO reaches 7/8 of its depth */
00125 #define SMARTCARD_RXFIFO_THRESHOLD_8_8   (USART_CR3_RXFTCFG_2|USART_CR3_RXFTCFG_0)  /*!< RXFIFO FIFO becomes full             */
00126 /**
00127   * @}
00128   */
00129 #endif
00130 
00131 /** @defgroup SMARTCARDEx_Flags SMARTCARD Flags
00132   *        Elements values convention: 0xXXXX
00133   *           - 0xXXXX  : Flag mask in the ISR register
00134   * @{
00135   */
00136 #if defined(USART_TCBGT_SUPPORT)
00137 #define SMARTCARD_FLAG_TCBGT          USART_ISR_TCBGT         /*!< SMARTCARD transmission complete before guard time completion */
00138 #endif /* USART_TCBGT_SUPPORT */
00139 #define SMARTCARD_FLAG_REACK          USART_ISR_REACK         /*!< SMARTCARD receive enable acknowledge flag  */
00140 #define SMARTCARD_FLAG_TEACK          USART_ISR_TEACK         /*!< SMARTCARD transmit enable acknowledge flag */
00141 #define SMARTCARD_FLAG_BUSY           USART_ISR_BUSY          /*!< SMARTCARD busy flag                        */
00142 #define SMARTCARD_FLAG_EOBF           USART_ISR_EOBF          /*!< SMARTCARD end of block flag                */
00143 #define SMARTCARD_FLAG_RTOF           USART_ISR_RTOF          /*!< SMARTCARD receiver timeout flag            */
00144 #if defined(USART_CR1_FIFOEN)
00145 #define SMARTCARD_FLAG_TXE            USART_ISR_TXE_TXFNF     /*!< SMARTCARD transmit data register empty     */
00146 #define SMARTCARD_FLAG_TXFNF          USART_ISR_TXE_TXFNF     /*!< SMARTCARD TXFIFO not full                  */
00147 #else
00148 #define SMARTCARD_FLAG_TXE            USART_ISR_TXE        /*!< SMARTCARD transmit data register empty     */
00149 #endif
00150 #define SMARTCARD_FLAG_TC             USART_ISR_TC            /*!< SMARTCARD transmission complete            */
00151 #if defined(USART_CR1_FIFOEN)
00152 #define SMARTCARD_FLAG_RXNE           USART_ISR_RXNE_RXFNE    /*!< SMARTCARD read data register not empty     */
00153 #define SMARTCARD_FLAG_RXFNE          USART_ISR_RXNE_RXFNE    /*!< SMARTCARD RXFIFO not empty                 */
00154 #else
00155 #define SMARTCARD_FLAG_RXNE           USART_ISR_RXNE       /*!< SMARTCARD read data register not empty     */
00156 #endif
00157 #define SMARTCARD_FLAG_IDLE           USART_ISR_IDLE          /*!< SMARTCARD idle line detection              */
00158 #define SMARTCARD_FLAG_ORE            USART_ISR_ORE           /*!< SMARTCARD overrun error                    */
00159 #define SMARTCARD_FLAG_NE             USART_ISR_NE            /*!< SMARTCARD noise error                      */
00160 #define SMARTCARD_FLAG_FE             USART_ISR_FE            /*!< SMARTCARD frame error                      */
00161 #define SMARTCARD_FLAG_PE             USART_ISR_PE            /*!< SMARTCARD parity error                     */
00162 #if defined(USART_CR1_FIFOEN)
00163 #define SMARTCARD_FLAG_TXFE           USART_ISR_TXFE          /*!< SMARTCARD TXFIFO Empty flag                */
00164 #define SMARTCARD_FLAG_RXFF           USART_ISR_RXFF          /*!< SMARTCARD RXFIFO Full flag                 */
00165 #define SMARTCARD_FLAG_RXFT           USART_ISR_RXFT          /*!< SMARTCARD RXFIFO threshold flag            */
00166 #define SMARTCARD_FLAG_TXFT           USART_ISR_TXFT          /*!< SMARTCARD TXFIFO threshold flag            */
00167 #endif
00168 /**
00169   * @}
00170   */
00171 
00172 /** @defgroup SMARTCARDEx_Interrupt_definition SMARTCARD Interrupts Definition
00173   *        Elements values convention: 000ZZZZZ0XXYYYYYb
00174   *           - YYYYY  : Interrupt source position in the XX register (5 bits)
00175   *           - XX  : Interrupt source register (2 bits)
00176   *                 - 01: CR1 register
00177   *                 - 10: CR2 register
00178   *                 - 11: CR3 register
00179   *           - ZZZZZ  : Flag position in the ISR register(5 bits)
00180   * @{
00181   */
00182 #define SMARTCARD_IT_PE                     0x0028U           /*!< SMARTCARD parity error interruption                 */
00183 #define SMARTCARD_IT_TXE                    0x0727U           /*!< SMARTCARD transmit data register empty interruption */
00184 #if defined(USART_CR1_FIFOEN)
00185 #define SMARTCARD_IT_TXFNF                  0x0727U           /*!< SMARTCARD TX FIFO not full interruption             */
00186 #endif
00187 #define SMARTCARD_IT_TC                     0x0626U           /*!< SMARTCARD transmission complete interruption        */
00188 #define SMARTCARD_IT_RXNE                   0x0525U           /*!< SMARTCARD read data register not empty interruption */
00189 #if defined(USART_CR1_FIFOEN)
00190 #define SMARTCARD_IT_RXFNE                  0x0525U           /*!< SMARTCARD RXFIFO not empty interruption             */
00191 #endif
00192 #define SMARTCARD_IT_IDLE                   0x0424U           /*!< SMARTCARD idle line detection interruption          */
00193 
00194 #define SMARTCARD_IT_ERR                    0x0060U           /*!< SMARTCARD error interruption         */
00195 #define SMARTCARD_IT_ORE                    0x0300U           /*!< SMARTCARD overrun error interruption */
00196 #define SMARTCARD_IT_NE                     0x0200U           /*!< SMARTCARD noise error interruption   */
00197 #define SMARTCARD_IT_FE                     0x0100U           /*!< SMARTCARD frame error interruption   */
00198 
00199 #define SMARTCARD_IT_EOB                    0x0C3BU           /*!< SMARTCARD end of block interruption     */
00200 #define SMARTCARD_IT_RTO                    0x0B3AU           /*!< SMARTCARD receiver timeout interruption */
00201 #if defined(USART_TCBGT_SUPPORT)
00202 #define SMARTCARD_IT_TCBGT                  0x1978U           /*!< SMARTCARD transmission complete before guard time completion interruption */
00203 #endif /* USART_TCBGT_SUPPORT */
00204 
00205 #if defined(USART_CR1_FIFOEN)
00206 #define SMARTCARD_IT_RXFF                    0x183FU          /*!< SMARTCARD RXFIFO full interruption                  */
00207 #define SMARTCARD_IT_TXFE                    0x173EU          /*!< SMARTCARD TXFIFO empty interruption                 */
00208 #define SMARTCARD_IT_RXFT                    0x1A7CU          /*!< SMARTCARD RXFIFO threshold reached interruption     */
00209 #define SMARTCARD_IT_TXFT                    0x1B77U          /*!< SMARTCARD TXFIFO threshold reached interruption     */
00210 #endif
00211 /**
00212   * @}
00213   */
00214 
00215 /** @defgroup SMARTCARDEx_IT_CLEAR_Flags SMARTCARD Interruption Clear Flags
00216   * @{
00217   */
00218 #define SMARTCARD_CLEAR_PEF                 USART_ICR_PECF    /*!< SMARTCARD parity error clear flag          */
00219 #define SMARTCARD_CLEAR_FEF                 USART_ICR_FECF    /*!< SMARTCARD framing error clear flag         */
00220 #define SMARTCARD_CLEAR_NEF                 USART_ICR_NECF    /*!< SMARTCARD noise error detected clear flag  */
00221 #define SMARTCARD_CLEAR_OREF                USART_ICR_ORECF   /*!< SMARTCARD overrun error clear flag         */
00222 #define SMARTCARD_CLEAR_IDLEF               USART_ICR_IDLECF  /*!< SMARTCARD idle line detected clear flag    */
00223 #if defined(USART_CR1_FIFOEN)
00224 #define SMARTCARD_CLEAR_TXFECF              USART_ICR_TXFECF  /*!< TXFIFO empty Clear Flag                    */
00225 #endif
00226 #define SMARTCARD_CLEAR_TCF                 USART_ICR_TCCF    /*!< SMARTCARD transmission complete clear flag */
00227 #if defined(USART_TCBGT_SUPPORT)
00228 #define SMARTCARD_CLEAR_TCBGTF              USART_ICR_TCBGTCF /*!< SMARTCARD transmission complete before guard time completion clear flag */
00229 #endif /* USART_TCBGT_SUPPORT */
00230 #define SMARTCARD_CLEAR_RTOF                USART_ICR_RTOCF   /*!< SMARTCARD receiver time out clear flag     */
00231 #define SMARTCARD_CLEAR_EOBF                USART_ICR_EOBCF   /*!< SMARTCARD end of block clear flag          */
00232 /**
00233   * @}
00234   */
00235 
00236 /**
00237   * @}
00238   */
00239 /* Exported macros -----------------------------------------------------------*/
00240 /* Private macros ------------------------------------------------------------*/
00241 /** @defgroup SMARTCARDEx_Private_Macros SMARTCARD Extended Private Macros
00242   * @{
00243   */
00244 
00245 /** @brief  Set the Transmission Completion flag
00246   * @param  __HANDLE__ specifies the SMARTCARD Handle.
00247   * @note  If TCBGT (Transmission Complete Before Guard Time) flag is not available or if
00248   *        AdvancedInit.TxCompletionIndication is not already filled, the latter is forced
00249   *        to SMARTCARD_TC (transmission completion indication when guard time has elapsed).
00250   * @retval None
00251   */
00252 #if defined(USART_TCBGT_SUPPORT)
00253 #define SMARTCARD_TRANSMISSION_COMPLETION_SETTING(__HANDLE__)                                                \
00254   do {                                                                                                       \
00255     if (HAL_IS_BIT_CLR((__HANDLE__)->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_TXCOMPLETION))        \
00256     {                                                                                                        \
00257      (__HANDLE__)->AdvancedInit.TxCompletionIndication = SMARTCARD_TC;                                       \
00258     }                                                                                                        \
00259     else                                                                                                     \
00260     {                                                                                                        \
00261       assert_param(IS_SMARTCARD_TRANSMISSION_COMPLETION((__HANDLE__)->AdvancedInit.TxCompletionIndication)); \
00262     }                                                                                                        \
00263   } while(0U)
00264 #else
00265 #define SMARTCARD_TRANSMISSION_COMPLETION_SETTING(__HANDLE__)         \
00266   do {                                                                \
00267     (__HANDLE__)->AdvancedInit.TxCompletionIndication = SMARTCARD_TC; \
00268   } while(0U)  
00269 #endif /* USART_TCBGT_SUPPORT */
00270 
00271 /** @brief  Return the transmission completion flag.
00272   * @param  __HANDLE__ specifies the SMARTCARD Handle.
00273   * @note  Based on AdvancedInit.TxCompletionIndication setting, return TC or TCBGT flag.
00274   *        When TCBGT flag (Transmission Complete Before Guard Time) is not available, TC flag is
00275   *        reported.
00276   * @retval Transmission completion flag
00277   */
00278 #if defined(USART_TCBGT_SUPPORT)
00279 #define SMARTCARD_TRANSMISSION_COMPLETION_FLAG(__HANDLE__)                                                         \
00280   (((__HANDLE__)->AdvancedInit.TxCompletionIndication == SMARTCARD_TC) ? (SMARTCARD_FLAG_TC) :  (SMARTCARD_FLAG_TCBGT))
00281 #else
00282 #define SMARTCARD_TRANSMISSION_COMPLETION_FLAG(__HANDLE__)    (SMARTCARD_FLAG_TC)
00283 #endif /* USART_TCBGT_SUPPORT */
00284 
00285 
00286 /**
00287   * @brief Ensure that SMARTCARD frame transmission completion used flag is valid.
00288   * @param __TXCOMPLETE__ SMARTCARD frame transmission completion used flag.
00289   * @retval SET (__TXCOMPLETE__ is valid) or RESET (__TXCOMPLETE__ is invalid)
00290   */
00291 #if defined(USART_TCBGT_SUPPORT)
00292 #define IS_SMARTCARD_TRANSMISSION_COMPLETION(__TXCOMPLETE__) (((__TXCOMPLETE__) == SMARTCARD_TCBGT) ||\
00293                                                               ((__TXCOMPLETE__) == SMARTCARD_TC))
00294 #else
00295 #define IS_SMARTCARD_TRANSMISSION_COMPLETION(__TXCOMPLETE__) ((__TXCOMPLETE__) == SMARTCARD_TC)
00296 #endif /* USART_TCBGT_SUPPORT */
00297 
00298 /**
00299   * @brief Ensure that SMARTCARD FIFO mode is valid.
00300   * @param __STATE__ SMARTCARD FIFO mode.
00301   * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
00302   */
00303 #define IS_SMARTCARD_FIFOMODE_STATE(__STATE__) (((__STATE__) == SMARTCARD_FIFOMODE_DISABLE ) || \
00304                                          ((__STATE__) == SMARTCARD_FIFOMODE_ENABLE))
00305 
00306 /**
00307   * @brief Ensure that SMARTCARD TXFIFO threshold level is valid.
00308   * @param __THRESHOLD__ SMARTCARD TXFIFO threshold level.
00309   * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
00310   */
00311 #define IS_SMARTCARD_TXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_1_8) || \
00312                                           ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_1_4)             || \
00313                                           ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_1_2)             || \
00314                                           ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_3_4)             || \
00315                                           ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_7_8)             || \
00316                                           ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_8_8))
00317 
00318 /**
00319   * @brief Ensure that SMARTCARD RXFIFO threshold level is valid.
00320   * @param __THRESHOLD__ SMARTCARD RXFIFO threshold level.
00321   * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
00322   */
00323 #define IS_SMARTCARD_RXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_1_8) || \
00324                                           ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_1_4)             || \
00325                                           ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_1_2)             || \
00326                                           ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_3_4)             || \
00327                                           ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_7_8)             || \
00328                                           ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_8_8))
00329 
00330 /**
00331   * @}
00332   */
00333 
00334 /* Exported functions --------------------------------------------------------*/
00335 /** @addtogroup SMARTCARDEx_Exported_Functions
00336   * @{
00337   */
00338 
00339 /* Initialization and de-initialization functions  ****************************/
00340 /* IO operation methods *******************************************************/
00341 
00342 /** @addtogroup SMARTCARDEx_Exported_Functions_Group1
00343   * @{
00344   */
00345 
00346 /* Peripheral Control functions ***********************************************/
00347 void              HAL_SMARTCARDEx_BlockLength_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t BlockLength);
00348 void              HAL_SMARTCARDEx_TimeOut_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t TimeOutValue);
00349 HAL_StatusTypeDef HAL_SMARTCARDEx_EnableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard);
00350 HAL_StatusTypeDef HAL_SMARTCARDEx_DisableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard);
00351 
00352 /**
00353   * @}
00354   */
00355 
00356 /* Exported functions --------------------------------------------------------*/
00357 /** @addtogroup SMARTCARDEx_Exported_Functions_Group2
00358   * @{
00359   */
00360 
00361 /* IO operation functions *****************************************************/
00362 #if defined(USART_CR1_FIFOEN)
00363 void HAL_SMARTCARDEx_RxFifoFullCallback(SMARTCARD_HandleTypeDef *hsmartcard);
00364 void HAL_SMARTCARDEx_TxFifoEmptyCallback(SMARTCARD_HandleTypeDef *hsmartcard);
00365 #endif
00366 
00367 /**
00368   * @}
00369   */
00370 
00371 /** @addtogroup SMARTCARDEx_Exported_Functions_Group3
00372   * @{
00373   */
00374 
00375 /* Peripheral Control functions ***********************************************/
00376 #if defined(USART_CR1_FIFOEN)
00377 HAL_StatusTypeDef HAL_SMARTCARDEx_EnableFifoMode(SMARTCARD_HandleTypeDef *hsmartcard);
00378 HAL_StatusTypeDef HAL_SMARTCARDEx_DisableFifoMode(SMARTCARD_HandleTypeDef *hsmartcard);
00379 HAL_StatusTypeDef HAL_SMARTCARDEx_SetTxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold);
00380 HAL_StatusTypeDef HAL_SMARTCARDEx_SetRxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold);
00381 #endif
00382 
00383 /**
00384   * @}
00385   */
00386 
00387 /**
00388   * @}
00389   */
00390 
00391 
00392 /* Private functions ---------------------------------------------------------*/
00393 
00394 /**
00395   * @}
00396   */
00397 
00398 /**
00399   * @}
00400   */
00401 
00402 #ifdef __cplusplus
00403 }
00404 #endif
00405 
00406 #endif /* __STM32L4xx_HAL_SMARTCARD_EX_H */
00407 
00408 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/