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_irda_ex.h
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 Header file of IRDA HAL Extended module.
mbed_official 330:c80ac197fa6a 8 ******************************************************************************
mbed_official 330:c80ac197fa6a 9 * @attention
mbed_official 330:c80ac197fa6a 10 *
mbed_official 634:ac7d6880524d 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 330:c80ac197fa6a 12 *
mbed_official 330:c80ac197fa6a 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 330:c80ac197fa6a 14 * are permitted provided that the following conditions are met:
mbed_official 330:c80ac197fa6a 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 330:c80ac197fa6a 16 * this list of conditions and the following disclaimer.
mbed_official 330:c80ac197fa6a 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 330:c80ac197fa6a 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 330:c80ac197fa6a 19 * and/or other materials provided with the distribution.
mbed_official 330:c80ac197fa6a 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 330:c80ac197fa6a 21 * may be used to endorse or promote products derived from this software
mbed_official 330:c80ac197fa6a 22 * without specific prior written permission.
mbed_official 330:c80ac197fa6a 23 *
mbed_official 330:c80ac197fa6a 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 330:c80ac197fa6a 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 330:c80ac197fa6a 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 330:c80ac197fa6a 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 330:c80ac197fa6a 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 330:c80ac197fa6a 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 330:c80ac197fa6a 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 330:c80ac197fa6a 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 330:c80ac197fa6a 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 330:c80ac197fa6a 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 330:c80ac197fa6a 34 *
mbed_official 330:c80ac197fa6a 35 ******************************************************************************
mbed_official 330:c80ac197fa6a 36 */
mbed_official 330:c80ac197fa6a 37
mbed_official 330:c80ac197fa6a 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 330:c80ac197fa6a 39 #ifndef __STM32F3xx_HAL_IRDA_EX_H
mbed_official 330:c80ac197fa6a 40 #define __STM32F3xx_HAL_IRDA_EX_H
mbed_official 330:c80ac197fa6a 41
mbed_official 330:c80ac197fa6a 42 #ifdef __cplusplus
mbed_official 330:c80ac197fa6a 43 extern "C" {
mbed_official 330:c80ac197fa6a 44 #endif
mbed_official 330:c80ac197fa6a 45
mbed_official 330:c80ac197fa6a 46 /* Includes ------------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 47 #include "stm32f3xx_hal_def.h"
mbed_official 330:c80ac197fa6a 48
mbed_official 330:c80ac197fa6a 49 /** @addtogroup STM32F3xx_HAL_Driver
mbed_official 330:c80ac197fa6a 50 * @{
mbed_official 330:c80ac197fa6a 51 */
mbed_official 330:c80ac197fa6a 52
mbed_official 330:c80ac197fa6a 53 /** @addtogroup IRDAEx IRDA Extended HAL module driver
mbed_official 330:c80ac197fa6a 54 * @{
mbed_official 330:c80ac197fa6a 55 */
mbed_official 330:c80ac197fa6a 56
mbed_official 330:c80ac197fa6a 57 /* Exported types ------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 58 /* Exported constants --------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 59 /** @defgroup IRDAEx_Exported_Constants IRDA Extended Exported Constants
mbed_official 330:c80ac197fa6a 60 * @{
mbed_official 330:c80ac197fa6a 61 */
mbed_official 330:c80ac197fa6a 62
mbed_official 330:c80ac197fa6a 63 /** @defgroup IRDAEx_Word_Length IRDA Extended Word Length
mbed_official 330:c80ac197fa6a 64 * @{
mbed_official 330:c80ac197fa6a 65 */
mbed_official 330:c80ac197fa6a 66 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
mbed_official 330:c80ac197fa6a 67 defined(STM32F334x8) || \
mbed_official 330:c80ac197fa6a 68 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
mbed_official 330:c80ac197fa6a 69 #define IRDA_WORDLENGTH_7B ((uint32_t)USART_CR1_M1)
mbed_official 330:c80ac197fa6a 70 #define IRDA_WORDLENGTH_8B ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 71 #define IRDA_WORDLENGTH_9B ((uint32_t)USART_CR1_M0)
mbed_official 330:c80ac197fa6a 72 #define IS_IRDA_WORD_LENGTH(LENGTH) (((LENGTH) == IRDA_WORDLENGTH_7B) || \
mbed_official 330:c80ac197fa6a 73 ((LENGTH) == IRDA_WORDLENGTH_8B) || \
mbed_official 330:c80ac197fa6a 74 ((LENGTH) == IRDA_WORDLENGTH_9B))
mbed_official 330:c80ac197fa6a 75 #else
mbed_official 330:c80ac197fa6a 76 #define IRDA_WORDLENGTH_8B ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 77 #define IRDA_WORDLENGTH_9B ((uint32_t)USART_CR1_M)
mbed_official 330:c80ac197fa6a 78 #define IS_IRDA_WORD_LENGTH(LENGTH) (((LENGTH) == IRDA_WORDLENGTH_8B) || \
mbed_official 330:c80ac197fa6a 79 ((LENGTH) == IRDA_WORDLENGTH_9B))
mbed_official 330:c80ac197fa6a 80 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
mbed_official 330:c80ac197fa6a 81 /* STM32F334x8 || */
mbed_official 330:c80ac197fa6a 82 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
mbed_official 330:c80ac197fa6a 83 /**
mbed_official 330:c80ac197fa6a 84 * @}
mbed_official 330:c80ac197fa6a 85 */
mbed_official 330:c80ac197fa6a 86
mbed_official 330:c80ac197fa6a 87
mbed_official 330:c80ac197fa6a 88 /**
mbed_official 330:c80ac197fa6a 89 * @}
mbed_official 330:c80ac197fa6a 90 */
mbed_official 330:c80ac197fa6a 91
mbed_official 330:c80ac197fa6a 92 /* Exported macros -----------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 93
mbed_official 330:c80ac197fa6a 94 /** @defgroup IRDAEx_Exported_Macros IRDA Extended Exported Macros
mbed_official 330:c80ac197fa6a 95 * @{
mbed_official 330:c80ac197fa6a 96 */
mbed_official 330:c80ac197fa6a 97
mbed_official 330:c80ac197fa6a 98 /** @brief Reports the IRDA clock source.
mbed_official 330:c80ac197fa6a 99 * @param __HANDLE__: specifies the IRDA Handle
mbed_official 330:c80ac197fa6a 100 * @param __CLOCKSOURCE__ : output variable
mbed_official 330:c80ac197fa6a 101 * @retval IRDA clocking source, written in __CLOCKSOURCE__.
mbed_official 330:c80ac197fa6a 102 */
mbed_official 330:c80ac197fa6a 103 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
mbed_official 330:c80ac197fa6a 104 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx)
mbed_official 330:c80ac197fa6a 105 #define __HAL_IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 330:c80ac197fa6a 106 do { \
mbed_official 330:c80ac197fa6a 107 if((__HANDLE__)->Instance == USART1) \
mbed_official 330:c80ac197fa6a 108 { \
mbed_official 330:c80ac197fa6a 109 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 330:c80ac197fa6a 110 { \
mbed_official 330:c80ac197fa6a 111 case RCC_USART1CLKSOURCE_PCLK2: \
mbed_official 330:c80ac197fa6a 112 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
mbed_official 330:c80ac197fa6a 113 break; \
mbed_official 330:c80ac197fa6a 114 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 115 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 116 break; \
mbed_official 330:c80ac197fa6a 117 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 118 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 119 break; \
mbed_official 330:c80ac197fa6a 120 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 121 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 122 break; \
mbed_official 330:c80ac197fa6a 123 } \
mbed_official 330:c80ac197fa6a 124 } \
mbed_official 330:c80ac197fa6a 125 else if((__HANDLE__)->Instance == USART2) \
mbed_official 330:c80ac197fa6a 126 { \
mbed_official 330:c80ac197fa6a 127 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 330:c80ac197fa6a 128 { \
mbed_official 330:c80ac197fa6a 129 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 130 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 131 break; \
mbed_official 330:c80ac197fa6a 132 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 133 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 134 break; \
mbed_official 330:c80ac197fa6a 135 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 136 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 137 break; \
mbed_official 330:c80ac197fa6a 138 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 139 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 140 break; \
mbed_official 330:c80ac197fa6a 141 } \
mbed_official 330:c80ac197fa6a 142 } \
mbed_official 330:c80ac197fa6a 143 else if((__HANDLE__)->Instance == USART3) \
mbed_official 330:c80ac197fa6a 144 { \
mbed_official 330:c80ac197fa6a 145 switch(__HAL_RCC_GET_USART3_SOURCE()) \
mbed_official 330:c80ac197fa6a 146 { \
mbed_official 330:c80ac197fa6a 147 case RCC_USART3CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 148 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 149 break; \
mbed_official 330:c80ac197fa6a 150 case RCC_USART3CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 151 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 152 break; \
mbed_official 330:c80ac197fa6a 153 case RCC_USART3CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 154 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 155 break; \
mbed_official 330:c80ac197fa6a 156 case RCC_USART3CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 157 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 158 break; \
mbed_official 330:c80ac197fa6a 159 } \
mbed_official 330:c80ac197fa6a 160 } \
mbed_official 330:c80ac197fa6a 161 else if((__HANDLE__)->Instance == UART4) \
mbed_official 330:c80ac197fa6a 162 { \
mbed_official 330:c80ac197fa6a 163 switch(__HAL_RCC_GET_UART4_SOURCE()) \
mbed_official 330:c80ac197fa6a 164 { \
mbed_official 330:c80ac197fa6a 165 case RCC_UART4CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 166 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 167 break; \
mbed_official 330:c80ac197fa6a 168 case RCC_UART4CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 169 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 170 break; \
mbed_official 330:c80ac197fa6a 171 case RCC_UART4CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 172 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 173 break; \
mbed_official 330:c80ac197fa6a 174 case RCC_UART4CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 175 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 176 break; \
mbed_official 330:c80ac197fa6a 177 } \
mbed_official 330:c80ac197fa6a 178 } \
mbed_official 330:c80ac197fa6a 179 else if ((__HANDLE__)->Instance == UART5) \
mbed_official 330:c80ac197fa6a 180 { \
mbed_official 330:c80ac197fa6a 181 switch(__HAL_RCC_GET_UART5_SOURCE()) \
mbed_official 330:c80ac197fa6a 182 { \
mbed_official 330:c80ac197fa6a 183 case RCC_UART5CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 184 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 185 break; \
mbed_official 330:c80ac197fa6a 186 case RCC_UART5CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 187 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 188 break; \
mbed_official 330:c80ac197fa6a 189 case RCC_UART5CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 190 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 191 break; \
mbed_official 330:c80ac197fa6a 192 case RCC_UART5CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 193 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 194 break; \
mbed_official 330:c80ac197fa6a 195 } \
mbed_official 330:c80ac197fa6a 196 } \
mbed_official 330:c80ac197fa6a 197 } while(0)
mbed_official 330:c80ac197fa6a 198 #elif defined(STM32F303x8) || defined(STM32F334x8) ||defined(STM32F328xx)
mbed_official 330:c80ac197fa6a 199 #define __HAL_IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 330:c80ac197fa6a 200 do { \
mbed_official 330:c80ac197fa6a 201 if((__HANDLE__)->Instance == USART1) \
mbed_official 330:c80ac197fa6a 202 { \
mbed_official 330:c80ac197fa6a 203 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 330:c80ac197fa6a 204 { \
mbed_official 330:c80ac197fa6a 205 case RCC_USART1CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 206 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 207 break; \
mbed_official 330:c80ac197fa6a 208 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 209 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 210 break; \
mbed_official 330:c80ac197fa6a 211 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 212 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 213 break; \
mbed_official 330:c80ac197fa6a 214 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 215 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 216 break; \
mbed_official 330:c80ac197fa6a 217 } \
mbed_official 330:c80ac197fa6a 218 } \
mbed_official 330:c80ac197fa6a 219 else if((__HANDLE__)->Instance == USART2) \
mbed_official 330:c80ac197fa6a 220 { \
mbed_official 330:c80ac197fa6a 221 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 330:c80ac197fa6a 222 { \
mbed_official 330:c80ac197fa6a 223 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 224 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 225 break; \
mbed_official 330:c80ac197fa6a 226 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 227 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 228 break; \
mbed_official 330:c80ac197fa6a 229 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 230 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 231 break; \
mbed_official 330:c80ac197fa6a 232 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 233 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 234 break; \
mbed_official 330:c80ac197fa6a 235 } \
mbed_official 330:c80ac197fa6a 236 } \
mbed_official 330:c80ac197fa6a 237 else if((__HANDLE__)->Instance == USART3) \
mbed_official 330:c80ac197fa6a 238 { \
mbed_official 330:c80ac197fa6a 239 switch(__HAL_RCC_GET_USART3_SOURCE()) \
mbed_official 330:c80ac197fa6a 240 { \
mbed_official 330:c80ac197fa6a 241 case RCC_USART3CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 242 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 243 break; \
mbed_official 330:c80ac197fa6a 244 case RCC_USART3CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 245 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 246 break; \
mbed_official 330:c80ac197fa6a 247 case RCC_USART3CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 248 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 249 break; \
mbed_official 330:c80ac197fa6a 250 case RCC_USART3CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 251 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 252 break; \
mbed_official 330:c80ac197fa6a 253 } \
mbed_official 330:c80ac197fa6a 254 } \
mbed_official 330:c80ac197fa6a 255 } while(0)
mbed_official 330:c80ac197fa6a 256 #else
mbed_official 330:c80ac197fa6a 257 #define __HAL_IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 330:c80ac197fa6a 258 do { \
mbed_official 330:c80ac197fa6a 259 if((__HANDLE__)->Instance == USART1) \
mbed_official 330:c80ac197fa6a 260 { \
mbed_official 330:c80ac197fa6a 261 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 330:c80ac197fa6a 262 { \
mbed_official 330:c80ac197fa6a 263 case RCC_USART1CLKSOURCE_PCLK2: \
mbed_official 330:c80ac197fa6a 264 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
mbed_official 330:c80ac197fa6a 265 break; \
mbed_official 330:c80ac197fa6a 266 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 267 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 268 break; \
mbed_official 330:c80ac197fa6a 269 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 270 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 271 break; \
mbed_official 330:c80ac197fa6a 272 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 273 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 274 break; \
mbed_official 330:c80ac197fa6a 275 } \
mbed_official 330:c80ac197fa6a 276 } \
mbed_official 330:c80ac197fa6a 277 else if((__HANDLE__)->Instance == USART2) \
mbed_official 330:c80ac197fa6a 278 { \
mbed_official 330:c80ac197fa6a 279 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 330:c80ac197fa6a 280 { \
mbed_official 330:c80ac197fa6a 281 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 282 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 283 break; \
mbed_official 330:c80ac197fa6a 284 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 285 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 286 break; \
mbed_official 330:c80ac197fa6a 287 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 288 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 289 break; \
mbed_official 330:c80ac197fa6a 290 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 291 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 292 break; \
mbed_official 330:c80ac197fa6a 293 } \
mbed_official 330:c80ac197fa6a 294 } \
mbed_official 330:c80ac197fa6a 295 else if((__HANDLE__)->Instance == USART3) \
mbed_official 330:c80ac197fa6a 296 { \
mbed_official 330:c80ac197fa6a 297 switch(__HAL_RCC_GET_USART3_SOURCE()) \
mbed_official 330:c80ac197fa6a 298 { \
mbed_official 330:c80ac197fa6a 299 case RCC_USART3CLKSOURCE_PCLK1: \
mbed_official 330:c80ac197fa6a 300 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
mbed_official 330:c80ac197fa6a 301 break; \
mbed_official 330:c80ac197fa6a 302 case RCC_USART3CLKSOURCE_HSI: \
mbed_official 330:c80ac197fa6a 303 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
mbed_official 330:c80ac197fa6a 304 break; \
mbed_official 330:c80ac197fa6a 305 case RCC_USART3CLKSOURCE_SYSCLK: \
mbed_official 330:c80ac197fa6a 306 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
mbed_official 330:c80ac197fa6a 307 break; \
mbed_official 330:c80ac197fa6a 308 case RCC_USART3CLKSOURCE_LSE: \
mbed_official 330:c80ac197fa6a 309 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
mbed_official 330:c80ac197fa6a 310 break; \
mbed_official 330:c80ac197fa6a 311 } \
mbed_official 330:c80ac197fa6a 312 } \
mbed_official 330:c80ac197fa6a 313 } while(0)
mbed_official 330:c80ac197fa6a 314 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
mbed_official 330:c80ac197fa6a 315 /* STM32F302xC || STM32F303xC || STM32F358xx || */
mbed_official 330:c80ac197fa6a 316
mbed_official 330:c80ac197fa6a 317
mbed_official 330:c80ac197fa6a 318 /** @brief Computes the mask to apply to retrieve the received data
mbed_official 330:c80ac197fa6a 319 * according to the word length and to the parity bits activation.
mbed_official 330:c80ac197fa6a 320 * @param __HANDLE__: specifies the IRDA Handle
mbed_official 330:c80ac197fa6a 321 * @retval none
mbed_official 330:c80ac197fa6a 322 */
mbed_official 330:c80ac197fa6a 323 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
mbed_official 330:c80ac197fa6a 324 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx) || \
mbed_official 330:c80ac197fa6a 325 defined(STM32F334x8)
mbed_official 330:c80ac197fa6a 326 #define __HAL_IRDA_MASK_COMPUTATION(__HANDLE__) \
mbed_official 330:c80ac197fa6a 327 do { \
mbed_official 330:c80ac197fa6a 328 if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B) \
mbed_official 330:c80ac197fa6a 329 { \
mbed_official 330:c80ac197fa6a 330 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
mbed_official 330:c80ac197fa6a 331 { \
mbed_official 330:c80ac197fa6a 332 (__HANDLE__)->Mask = 0x01FF ; \
mbed_official 330:c80ac197fa6a 333 } \
mbed_official 330:c80ac197fa6a 334 else \
mbed_official 330:c80ac197fa6a 335 { \
mbed_official 330:c80ac197fa6a 336 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 330:c80ac197fa6a 337 } \
mbed_official 330:c80ac197fa6a 338 } \
mbed_official 330:c80ac197fa6a 339 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B) \
mbed_official 330:c80ac197fa6a 340 { \
mbed_official 330:c80ac197fa6a 341 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
mbed_official 330:c80ac197fa6a 342 { \
mbed_official 330:c80ac197fa6a 343 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 330:c80ac197fa6a 344 } \
mbed_official 330:c80ac197fa6a 345 else \
mbed_official 330:c80ac197fa6a 346 { \
mbed_official 330:c80ac197fa6a 347 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 330:c80ac197fa6a 348 } \
mbed_official 330:c80ac197fa6a 349 } \
mbed_official 330:c80ac197fa6a 350 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_7B) \
mbed_official 330:c80ac197fa6a 351 { \
mbed_official 330:c80ac197fa6a 352 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
mbed_official 330:c80ac197fa6a 353 { \
mbed_official 330:c80ac197fa6a 354 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 330:c80ac197fa6a 355 } \
mbed_official 330:c80ac197fa6a 356 else \
mbed_official 330:c80ac197fa6a 357 { \
mbed_official 330:c80ac197fa6a 358 (__HANDLE__)->Mask = 0x003F ; \
mbed_official 330:c80ac197fa6a 359 } \
mbed_official 330:c80ac197fa6a 360 } \
mbed_official 330:c80ac197fa6a 361 } while(0)
mbed_official 330:c80ac197fa6a 362 #else
mbed_official 330:c80ac197fa6a 363 #define __HAL_IRDA_MASK_COMPUTATION(__HANDLE__) \
mbed_official 330:c80ac197fa6a 364 do { \
mbed_official 330:c80ac197fa6a 365 if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B) \
mbed_official 330:c80ac197fa6a 366 { \
mbed_official 330:c80ac197fa6a 367 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
mbed_official 330:c80ac197fa6a 368 { \
mbed_official 330:c80ac197fa6a 369 (__HANDLE__)->Mask = 0x01FF ; \
mbed_official 330:c80ac197fa6a 370 } \
mbed_official 330:c80ac197fa6a 371 else \
mbed_official 330:c80ac197fa6a 372 { \
mbed_official 330:c80ac197fa6a 373 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 330:c80ac197fa6a 374 } \
mbed_official 330:c80ac197fa6a 375 } \
mbed_official 330:c80ac197fa6a 376 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B) \
mbed_official 330:c80ac197fa6a 377 { \
mbed_official 330:c80ac197fa6a 378 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
mbed_official 330:c80ac197fa6a 379 { \
mbed_official 330:c80ac197fa6a 380 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 330:c80ac197fa6a 381 } \
mbed_official 330:c80ac197fa6a 382 else \
mbed_official 330:c80ac197fa6a 383 { \
mbed_official 330:c80ac197fa6a 384 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 330:c80ac197fa6a 385 } \
mbed_official 330:c80ac197fa6a 386 } \
mbed_official 330:c80ac197fa6a 387 } while(0)
mbed_official 330:c80ac197fa6a 388 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
mbed_official 330:c80ac197fa6a 389 /* STM32F301x8 || STM32F302x8 || STM32F318xx || */
mbed_official 330:c80ac197fa6a 390 /* STM32F334x8 */
mbed_official 330:c80ac197fa6a 391 /**
mbed_official 330:c80ac197fa6a 392 * @}
mbed_official 330:c80ac197fa6a 393 */
mbed_official 330:c80ac197fa6a 394
mbed_official 330:c80ac197fa6a 395 /* Exported functions --------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 396 /* Initialization and de-initialization functions ****************************/
mbed_official 330:c80ac197fa6a 397 /* IO operation functions *****************************************************/
mbed_official 330:c80ac197fa6a 398 /* Peripheral Control functions ***********************************************/
mbed_official 330:c80ac197fa6a 399 /* Peripheral State and Error functions ***************************************/
mbed_official 330:c80ac197fa6a 400
mbed_official 330:c80ac197fa6a 401 /**
mbed_official 330:c80ac197fa6a 402 * @}
mbed_official 330:c80ac197fa6a 403 */
mbed_official 330:c80ac197fa6a 404
mbed_official 330:c80ac197fa6a 405 /**
mbed_official 330:c80ac197fa6a 406 * @}
mbed_official 330:c80ac197fa6a 407 */
mbed_official 330:c80ac197fa6a 408
mbed_official 330:c80ac197fa6a 409 #ifdef __cplusplus
mbed_official 330:c80ac197fa6a 410 }
mbed_official 330:c80ac197fa6a 411 #endif
mbed_official 330:c80ac197fa6a 412
mbed_official 330:c80ac197fa6a 413 #endif /* __STM32F3xx_HAL_IRDA_EX_H */
mbed_official 330:c80ac197fa6a 414
mbed_official 330:c80ac197fa6a 415 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/