mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Mon Sep 28 20:15:09 2015 +0100
Revision:
634:ac7d6880524d
Parent:
632:7687fb9c4f91
Synchronized with git revision 9b7d23d47153c298a6d24de9a415202705889d11

Full URL: https://github.com/mbedmicro/mbed/commit/9b7d23d47153c298a6d24de9a415202705889d11/

Revert "[NUCLEO_F303K8] add support of the STM32F303K8"

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 330:c80ac197fa6a 1 /**
mbed_official 330:c80ac197fa6a 2 ******************************************************************************
mbed_official 330:c80ac197fa6a 3 * @file stm32f3xx_hal_smartcard_ex.c
mbed_official 330:c80ac197fa6a 4 * @author MCD Application Team
mbed_official 634:ac7d6880524d 5 * @version V1.1.0
mbed_official 634:ac7d6880524d 6 * @date 12-Sept-2014
mbed_official 330:c80ac197fa6a 7 * @brief SMARTCARD HAL module driver.
mbed_official 330:c80ac197fa6a 8 *
mbed_official 330:c80ac197fa6a 9 * This file provides extended firmware functions to manage the following
mbed_official 330:c80ac197fa6a 10 * functionalities of the SmartCard.
mbed_official 330:c80ac197fa6a 11 * + Initialization and de-initialization functions
mbed_official 330:c80ac197fa6a 12 * + Peripheral Control functions
mbed_official 330:c80ac197fa6a 13 *
mbed_official 330:c80ac197fa6a 14 *
mbed_official 330:c80ac197fa6a 15 @verbatim
mbed_official 330:c80ac197fa6a 16 ===============================================================================
mbed_official 330:c80ac197fa6a 17 ##### How to use this driver #####
mbed_official 330:c80ac197fa6a 18 ===============================================================================
mbed_official 330:c80ac197fa6a 19 [..]
mbed_official 330:c80ac197fa6a 20 The Extended SMARTCARD HAL driver can be used as follows:
mbed_official 330:c80ac197fa6a 21
mbed_official 330:c80ac197fa6a 22
mbed_official 330:c80ac197fa6a 23 (#) After having configured the SMARTCARD basic features with HAL_SMARTCARD_Init(),
mbed_official 330:c80ac197fa6a 24 then if required, program SMARTCARD advanced features (TX/RX pins swap, TimeOut,
mbed_official 330:c80ac197fa6a 25 auto-retry counter,...) in the hsmartcard AdvancedInit structure.
mbed_official 330:c80ac197fa6a 26
mbed_official 330:c80ac197fa6a 27
mbed_official 330:c80ac197fa6a 28
mbed_official 330:c80ac197fa6a 29 @endverbatim
mbed_official 330:c80ac197fa6a 30 ******************************************************************************
mbed_official 330:c80ac197fa6a 31 * @attention
mbed_official 330:c80ac197fa6a 32 *
mbed_official 634:ac7d6880524d 33 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 330:c80ac197fa6a 34 *
mbed_official 330:c80ac197fa6a 35 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 330:c80ac197fa6a 36 * are permitted provided that the following conditions are met:
mbed_official 330:c80ac197fa6a 37 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 330:c80ac197fa6a 38 * this list of conditions and the following disclaimer.
mbed_official 330:c80ac197fa6a 39 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 330:c80ac197fa6a 40 * this list of conditions and the following disclaimer in the documentation
mbed_official 330:c80ac197fa6a 41 * and/or other materials provided with the distribution.
mbed_official 330:c80ac197fa6a 42 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 330:c80ac197fa6a 43 * may be used to endorse or promote products derived from this software
mbed_official 330:c80ac197fa6a 44 * without specific prior written permission.
mbed_official 330:c80ac197fa6a 45 *
mbed_official 330:c80ac197fa6a 46 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 330:c80ac197fa6a 47 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 330:c80ac197fa6a 48 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 330:c80ac197fa6a 49 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 330:c80ac197fa6a 50 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 330:c80ac197fa6a 51 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 330:c80ac197fa6a 52 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 330:c80ac197fa6a 53 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 330:c80ac197fa6a 54 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 330:c80ac197fa6a 55 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 330:c80ac197fa6a 56 *
mbed_official 330:c80ac197fa6a 57 ******************************************************************************
mbed_official 330:c80ac197fa6a 58 */
mbed_official 330:c80ac197fa6a 59
mbed_official 330:c80ac197fa6a 60 /* Includes ------------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 61 #include "stm32f3xx_hal.h"
mbed_official 330:c80ac197fa6a 62
mbed_official 330:c80ac197fa6a 63 /** @addtogroup STM32F3xx_HAL_Driver
mbed_official 330:c80ac197fa6a 64 * @{
mbed_official 330:c80ac197fa6a 65 */
mbed_official 330:c80ac197fa6a 66
mbed_official 330:c80ac197fa6a 67 /** @defgroup SMARTCARDEx SMARTCARD Extended HAL module driver
mbed_official 330:c80ac197fa6a 68 * @brief SMARTCARD Extended HAL module driver
mbed_official 330:c80ac197fa6a 69 * @{
mbed_official 330:c80ac197fa6a 70 */
mbed_official 330:c80ac197fa6a 71 #ifdef HAL_SMARTCARD_MODULE_ENABLED
mbed_official 330:c80ac197fa6a 72
mbed_official 330:c80ac197fa6a 73 /* Private typedef -----------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 74 /* Private define ------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 75 /* Private macro -------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 76 /* Private variables ---------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 77 /* Private function prototypes -----------------------------------------------*/
mbed_official 330:c80ac197fa6a 78
mbed_official 330:c80ac197fa6a 79 /* Exported functions ---------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 80
mbed_official 330:c80ac197fa6a 81 /** @defgroup SMARTCARDEx_Exported_Functions SMARTCARD Extended Exported Functions
mbed_official 330:c80ac197fa6a 82 * @{
mbed_official 330:c80ac197fa6a 83 */
mbed_official 330:c80ac197fa6a 84
mbed_official 330:c80ac197fa6a 85 /** @defgroup SMARTCARDEx_Exported_Functions_Group1 Extended Peripheral Control functions
mbed_official 330:c80ac197fa6a 86 * @brief Extended control functions
mbed_official 330:c80ac197fa6a 87 *
mbed_official 330:c80ac197fa6a 88 @verbatim
mbed_official 330:c80ac197fa6a 89 ===============================================================================
mbed_official 330:c80ac197fa6a 90 ##### Peripheral Control functions #####
mbed_official 330:c80ac197fa6a 91 ===============================================================================
mbed_official 330:c80ac197fa6a 92 [..]
mbed_official 330:c80ac197fa6a 93 This subsection provides a set of functions allowing to initialize the SMARTCARD.
mbed_official 330:c80ac197fa6a 94 (+) HAL_SMARTCARDEx_BlockLength_Config() API allows to configure the Block Length on the fly
mbed_official 330:c80ac197fa6a 95 (+) HAL_SMARTCARDEx_TimeOut_Config() API allows to configure the receiver timeout value on the fly
mbed_official 330:c80ac197fa6a 96 (+) HAL_SMARTCARDEx_EnableReceiverTimeOut() API enables the receiver timeout feature
mbed_official 330:c80ac197fa6a 97 (+) HAL_SMARTCARDEx_DisableReceiverTimeOut() API disables the receiver timeout feature
mbed_official 330:c80ac197fa6a 98
mbed_official 330:c80ac197fa6a 99 @endverbatim
mbed_official 330:c80ac197fa6a 100 * @{
mbed_official 330:c80ac197fa6a 101 */
mbed_official 330:c80ac197fa6a 102
mbed_official 330:c80ac197fa6a 103
mbed_official 330:c80ac197fa6a 104
mbed_official 330:c80ac197fa6a 105
mbed_official 330:c80ac197fa6a 106
mbed_official 330:c80ac197fa6a 107 /**
mbed_official 330:c80ac197fa6a 108 * @brief Update on the fly the SMARTCARD block length in RTOR register
mbed_official 330:c80ac197fa6a 109 * @param hsmartcard: SMARTCARD handle
mbed_official 330:c80ac197fa6a 110 * @param BlockLength: SMARTCARD block length (8-bit long at most)
mbed_official 330:c80ac197fa6a 111 * @retval None
mbed_official 330:c80ac197fa6a 112 */
mbed_official 330:c80ac197fa6a 113 void HAL_SMARTCARDEx_BlockLength_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t BlockLength)
mbed_official 330:c80ac197fa6a 114 {
mbed_official 330:c80ac197fa6a 115 MODIFY_REG(hsmartcard->Instance->RTOR, USART_RTOR_BLEN, ((uint32_t)BlockLength << SMARTCARD_RTOR_BLEN_LSB_POS));
mbed_official 330:c80ac197fa6a 116 }
mbed_official 330:c80ac197fa6a 117
mbed_official 330:c80ac197fa6a 118 /**
mbed_official 330:c80ac197fa6a 119 * @brief Update on the fly the receiver timeout value in RTOR register
mbed_official 330:c80ac197fa6a 120 * @param hsmartcard: SMARTCARD handle
mbed_official 330:c80ac197fa6a 121 * @param TimeOutValue: receiver timeout value in number of baud blocks. The timeout
mbed_official 330:c80ac197fa6a 122 * value must be less or equal to 0x0FFFFFFFF.
mbed_official 330:c80ac197fa6a 123 * @retval None
mbed_official 330:c80ac197fa6a 124 */
mbed_official 330:c80ac197fa6a 125 void HAL_SMARTCARDEx_TimeOut_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t TimeOutValue)
mbed_official 330:c80ac197fa6a 126 {
mbed_official 330:c80ac197fa6a 127 assert_param(IS_SMARTCARD_TIMEOUT_VALUE(hsmartcard->Init.TimeOutValue));
mbed_official 330:c80ac197fa6a 128 MODIFY_REG(hsmartcard->Instance->RTOR, USART_RTOR_RTO, TimeOutValue);
mbed_official 330:c80ac197fa6a 129 }
mbed_official 330:c80ac197fa6a 130
mbed_official 330:c80ac197fa6a 131 /**
mbed_official 330:c80ac197fa6a 132 * @brief Enable the SMARTCARD receiver timeout feature
mbed_official 330:c80ac197fa6a 133 * @param hsmartcard: SMARTCARD handle
mbed_official 330:c80ac197fa6a 134 * @retval HAL status
mbed_official 330:c80ac197fa6a 135 */
mbed_official 330:c80ac197fa6a 136 HAL_StatusTypeDef HAL_SMARTCARDEx_EnableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard)
mbed_official 330:c80ac197fa6a 137 {
mbed_official 330:c80ac197fa6a 138
mbed_official 330:c80ac197fa6a 139 /* Process Locked */
mbed_official 330:c80ac197fa6a 140 __HAL_LOCK(hsmartcard);
mbed_official 330:c80ac197fa6a 141
mbed_official 330:c80ac197fa6a 142 hsmartcard->State = HAL_SMARTCARD_STATE_BUSY;
mbed_official 330:c80ac197fa6a 143
mbed_official 330:c80ac197fa6a 144 /* Set the USART RTOEN bit */
mbed_official 330:c80ac197fa6a 145 hsmartcard->Instance->CR2 |= USART_CR2_RTOEN;
mbed_official 330:c80ac197fa6a 146
mbed_official 330:c80ac197fa6a 147 hsmartcard->State = HAL_SMARTCARD_STATE_READY;
mbed_official 330:c80ac197fa6a 148
mbed_official 330:c80ac197fa6a 149 /* Process Unlocked */
mbed_official 330:c80ac197fa6a 150 __HAL_UNLOCK(hsmartcard);
mbed_official 330:c80ac197fa6a 151
mbed_official 330:c80ac197fa6a 152 return HAL_OK;
mbed_official 330:c80ac197fa6a 153 }
mbed_official 330:c80ac197fa6a 154
mbed_official 330:c80ac197fa6a 155 /**
mbed_official 330:c80ac197fa6a 156 * @brief Disable the SMARTCARD receiver timeout feature
mbed_official 330:c80ac197fa6a 157 * @param hsmartcard: SMARTCARD handle
mbed_official 330:c80ac197fa6a 158 * @retval HAL status
mbed_official 330:c80ac197fa6a 159 */
mbed_official 330:c80ac197fa6a 160 HAL_StatusTypeDef HAL_SMARTCARDEx_DisableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard)
mbed_official 330:c80ac197fa6a 161 {
mbed_official 330:c80ac197fa6a 162
mbed_official 330:c80ac197fa6a 163 /* Process Locked */
mbed_official 330:c80ac197fa6a 164 __HAL_LOCK(hsmartcard);
mbed_official 330:c80ac197fa6a 165
mbed_official 330:c80ac197fa6a 166 hsmartcard->State = HAL_SMARTCARD_STATE_BUSY;
mbed_official 330:c80ac197fa6a 167
mbed_official 330:c80ac197fa6a 168 /* Clear the USART RTOEN bit */
mbed_official 330:c80ac197fa6a 169 hsmartcard->Instance->CR2 &= ~(USART_CR2_RTOEN);
mbed_official 330:c80ac197fa6a 170
mbed_official 330:c80ac197fa6a 171 hsmartcard->State = HAL_SMARTCARD_STATE_READY;
mbed_official 330:c80ac197fa6a 172
mbed_official 330:c80ac197fa6a 173 /* Process Unlocked */
mbed_official 330:c80ac197fa6a 174 __HAL_UNLOCK(hsmartcard);
mbed_official 330:c80ac197fa6a 175
mbed_official 330:c80ac197fa6a 176 return HAL_OK;
mbed_official 330:c80ac197fa6a 177 }
mbed_official 330:c80ac197fa6a 178
mbed_official 330:c80ac197fa6a 179 /**
mbed_official 330:c80ac197fa6a 180 * @}
mbed_official 330:c80ac197fa6a 181 */
mbed_official 330:c80ac197fa6a 182
mbed_official 330:c80ac197fa6a 183 /**
mbed_official 330:c80ac197fa6a 184 * @}
mbed_official 330:c80ac197fa6a 185 */
mbed_official 330:c80ac197fa6a 186
mbed_official 330:c80ac197fa6a 187 #endif /* HAL_SMARTCARD_MODULE_ENABLED */
mbed_official 330:c80ac197fa6a 188 /**
mbed_official 330:c80ac197fa6a 189 * @}
mbed_official 330:c80ac197fa6a 190 */
mbed_official 330:c80ac197fa6a 191
mbed_official 330:c80ac197fa6a 192 /**
mbed_official 330:c80ac197fa6a 193 * @}
mbed_official 330:c80ac197fa6a 194 */
mbed_official 330:c80ac197fa6a 195
mbed_official 330:c80ac197fa6a 196 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/