Ricardo Benitez / mbed

Fork of mbed by mbed official

Committer:
Kojto
Date:
Tue Mar 15 14:34:00 2016 +0000
Revision:
116:c0f6e94411f5
Parent:
115:87f2f5183dfb
Release 116 of the mbed library

Changes:
- new targets - NUCLEO_L073RZ
- fixes to IOTSS BEID platform
- LPC824, LPC1549 and LPC11U68 - fix PWMOut SCT bugs
- STM32F7 - Cube driver
- STM32F4 - add RTC LSI macro, defined as 0
- STM32F3 - fix multiple ADC clock initialization
- retarget - binary mode fix for GCC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 115:87f2f5183dfb 1 /**
Kojto 115:87f2f5183dfb 2 ******************************************************************************
Kojto 115:87f2f5183dfb 3 * @file stm32f7xx_hal_irda_ex.h
Kojto 115:87f2f5183dfb 4 * @author MCD Application Team
Kojto 116:c0f6e94411f5 5 * @version V1.0.4
Kojto 116:c0f6e94411f5 6 * @date 09-December-2015
Kojto 115:87f2f5183dfb 7 * @brief Header file of IRDA HAL Extension module.
Kojto 115:87f2f5183dfb 8 ******************************************************************************
Kojto 115:87f2f5183dfb 9 * @attention
Kojto 115:87f2f5183dfb 10 *
Kojto 115:87f2f5183dfb 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Kojto 115:87f2f5183dfb 12 *
Kojto 115:87f2f5183dfb 13 * Redistribution and use in source and binary forms, with or without modification,
Kojto 115:87f2f5183dfb 14 * are permitted provided that the following conditions are met:
Kojto 115:87f2f5183dfb 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 115:87f2f5183dfb 16 * this list of conditions and the following disclaimer.
Kojto 115:87f2f5183dfb 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 115:87f2f5183dfb 18 * this list of conditions and the following disclaimer in the documentation
Kojto 115:87f2f5183dfb 19 * and/or other materials provided with the distribution.
Kojto 115:87f2f5183dfb 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Kojto 115:87f2f5183dfb 21 * may be used to endorse or promote products derived from this software
Kojto 115:87f2f5183dfb 22 * without specific prior written permission.
Kojto 115:87f2f5183dfb 23 *
Kojto 115:87f2f5183dfb 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 115:87f2f5183dfb 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 115:87f2f5183dfb 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 115:87f2f5183dfb 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 115:87f2f5183dfb 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 115:87f2f5183dfb 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 115:87f2f5183dfb 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 115:87f2f5183dfb 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 115:87f2f5183dfb 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 115:87f2f5183dfb 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 115:87f2f5183dfb 34 *
Kojto 115:87f2f5183dfb 35 ******************************************************************************
Kojto 115:87f2f5183dfb 36 */
Kojto 115:87f2f5183dfb 37
Kojto 115:87f2f5183dfb 38 /* Define to prevent recursive inclusion -------------------------------------*/
Kojto 115:87f2f5183dfb 39 #ifndef __STM32F7xx_HAL_IRDA_EX_H
Kojto 115:87f2f5183dfb 40 #define __STM32F7xx_HAL_IRDA_EX_H
Kojto 115:87f2f5183dfb 41
Kojto 115:87f2f5183dfb 42 #ifdef __cplusplus
Kojto 115:87f2f5183dfb 43 extern "C" {
Kojto 115:87f2f5183dfb 44 #endif
Kojto 115:87f2f5183dfb 45
Kojto 115:87f2f5183dfb 46 /* Includes ------------------------------------------------------------------*/
Kojto 115:87f2f5183dfb 47 #include "stm32f7xx_hal_def.h"
Kojto 115:87f2f5183dfb 48
Kojto 115:87f2f5183dfb 49 /** @addtogroup STM32F7xx_HAL_Driver
Kojto 115:87f2f5183dfb 50 * @{
Kojto 115:87f2f5183dfb 51 */
Kojto 115:87f2f5183dfb 52
Kojto 115:87f2f5183dfb 53 /** @addtogroup IRDAEx
Kojto 115:87f2f5183dfb 54 * @{
Kojto 115:87f2f5183dfb 55 */
Kojto 115:87f2f5183dfb 56
Kojto 115:87f2f5183dfb 57 /* Exported types ------------------------------------------------------------*/
Kojto 115:87f2f5183dfb 58 /* Exported constants --------------------------------------------------------*/
Kojto 115:87f2f5183dfb 59 /** @defgroup IRDAEx_Extended_Exported_Constants IRDAEx Extended Exported Constants
Kojto 115:87f2f5183dfb 60 * @{
Kojto 115:87f2f5183dfb 61 */
Kojto 115:87f2f5183dfb 62
Kojto 115:87f2f5183dfb 63 /** @defgroup IRDAEx_Word_Length IRDAEx Word Length
Kojto 115:87f2f5183dfb 64 * @{
Kojto 115:87f2f5183dfb 65 */
Kojto 115:87f2f5183dfb 66 #define IRDA_WORDLENGTH_7B ((uint32_t)USART_CR1_M_1)
Kojto 115:87f2f5183dfb 67 #define IRDA_WORDLENGTH_8B ((uint32_t)0x00000000)
Kojto 115:87f2f5183dfb 68 #define IRDA_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
Kojto 115:87f2f5183dfb 69 /**
Kojto 115:87f2f5183dfb 70 * @}
Kojto 115:87f2f5183dfb 71 */
Kojto 115:87f2f5183dfb 72
Kojto 115:87f2f5183dfb 73
Kojto 115:87f2f5183dfb 74 /**
Kojto 115:87f2f5183dfb 75 * @}
Kojto 115:87f2f5183dfb 76 */
Kojto 115:87f2f5183dfb 77
Kojto 115:87f2f5183dfb 78 /* Exported macro ------------------------------------------------------------*/
Kojto 115:87f2f5183dfb 79
Kojto 115:87f2f5183dfb 80 /* Private macros ------------------------------------------------------------*/
Kojto 115:87f2f5183dfb 81
Kojto 115:87f2f5183dfb 82 /** @defgroup IRDAEx_Private_Macros IRDAEx Private Macros
Kojto 115:87f2f5183dfb 83 * @{
Kojto 115:87f2f5183dfb 84 */
Kojto 115:87f2f5183dfb 85 /** @brief Reports the IRDA clock source.
Kojto 115:87f2f5183dfb 86 * @param __HANDLE__: specifies the IRDA Handle
Kojto 115:87f2f5183dfb 87 * @param __CLOCKSOURCE__ : output variable
Kojto 115:87f2f5183dfb 88 * @retval IRDA clocking source, written in __CLOCKSOURCE__.
Kojto 115:87f2f5183dfb 89 */
Kojto 115:87f2f5183dfb 90 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 115:87f2f5183dfb 91 do { \
Kojto 115:87f2f5183dfb 92 if((__HANDLE__)->Instance == USART1) \
Kojto 115:87f2f5183dfb 93 { \
Kojto 115:87f2f5183dfb 94 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 115:87f2f5183dfb 95 { \
Kojto 115:87f2f5183dfb 96 case RCC_USART1CLKSOURCE_PCLK2: \
Kojto 115:87f2f5183dfb 97 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
Kojto 115:87f2f5183dfb 98 break; \
Kojto 115:87f2f5183dfb 99 case RCC_USART1CLKSOURCE_HSI: \
Kojto 115:87f2f5183dfb 100 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
Kojto 115:87f2f5183dfb 101 break; \
Kojto 115:87f2f5183dfb 102 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 115:87f2f5183dfb 103 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
Kojto 115:87f2f5183dfb 104 break; \
Kojto 115:87f2f5183dfb 105 case RCC_USART1CLKSOURCE_LSE: \
Kojto 115:87f2f5183dfb 106 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
Kojto 115:87f2f5183dfb 107 break; \
Kojto 115:87f2f5183dfb 108 default: \
Kojto 115:87f2f5183dfb 109 break; \
Kojto 115:87f2f5183dfb 110 } \
Kojto 115:87f2f5183dfb 111 } \
Kojto 115:87f2f5183dfb 112 else if((__HANDLE__)->Instance == USART2) \
Kojto 115:87f2f5183dfb 113 { \
Kojto 115:87f2f5183dfb 114 switch(__HAL_RCC_GET_USART2_SOURCE()) \
Kojto 115:87f2f5183dfb 115 { \
Kojto 115:87f2f5183dfb 116 case RCC_USART2CLKSOURCE_PCLK1: \
Kojto 115:87f2f5183dfb 117 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
Kojto 115:87f2f5183dfb 118 break; \
Kojto 115:87f2f5183dfb 119 case RCC_USART2CLKSOURCE_HSI: \
Kojto 115:87f2f5183dfb 120 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
Kojto 115:87f2f5183dfb 121 break; \
Kojto 115:87f2f5183dfb 122 case RCC_USART2CLKSOURCE_SYSCLK: \
Kojto 115:87f2f5183dfb 123 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
Kojto 115:87f2f5183dfb 124 break; \
Kojto 115:87f2f5183dfb 125 case RCC_USART2CLKSOURCE_LSE: \
Kojto 115:87f2f5183dfb 126 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
Kojto 115:87f2f5183dfb 127 break; \
Kojto 115:87f2f5183dfb 128 default: \
Kojto 115:87f2f5183dfb 129 break; \
Kojto 115:87f2f5183dfb 130 } \
Kojto 115:87f2f5183dfb 131 } \
Kojto 115:87f2f5183dfb 132 else if((__HANDLE__)->Instance == USART3) \
Kojto 115:87f2f5183dfb 133 { \
Kojto 115:87f2f5183dfb 134 switch(__HAL_RCC_GET_USART3_SOURCE()) \
Kojto 115:87f2f5183dfb 135 { \
Kojto 115:87f2f5183dfb 136 case RCC_USART3CLKSOURCE_PCLK1: \
Kojto 115:87f2f5183dfb 137 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
Kojto 115:87f2f5183dfb 138 break; \
Kojto 115:87f2f5183dfb 139 case RCC_USART3CLKSOURCE_HSI: \
Kojto 115:87f2f5183dfb 140 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
Kojto 115:87f2f5183dfb 141 break; \
Kojto 115:87f2f5183dfb 142 case RCC_USART3CLKSOURCE_SYSCLK: \
Kojto 115:87f2f5183dfb 143 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
Kojto 115:87f2f5183dfb 144 break; \
Kojto 115:87f2f5183dfb 145 case RCC_USART3CLKSOURCE_LSE: \
Kojto 115:87f2f5183dfb 146 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
Kojto 115:87f2f5183dfb 147 break; \
Kojto 115:87f2f5183dfb 148 default: \
Kojto 115:87f2f5183dfb 149 break; \
Kojto 115:87f2f5183dfb 150 } \
Kojto 115:87f2f5183dfb 151 } \
Kojto 115:87f2f5183dfb 152 else if((__HANDLE__)->Instance == USART6) \
Kojto 115:87f2f5183dfb 153 { \
Kojto 115:87f2f5183dfb 154 switch(__HAL_RCC_GET_USART6_SOURCE()) \
Kojto 115:87f2f5183dfb 155 { \
Kojto 115:87f2f5183dfb 156 case RCC_USART6CLKSOURCE_PCLK2: \
Kojto 115:87f2f5183dfb 157 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
Kojto 115:87f2f5183dfb 158 break; \
Kojto 115:87f2f5183dfb 159 case RCC_USART6CLKSOURCE_HSI: \
Kojto 115:87f2f5183dfb 160 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
Kojto 115:87f2f5183dfb 161 break; \
Kojto 115:87f2f5183dfb 162 case RCC_USART6CLKSOURCE_SYSCLK: \
Kojto 115:87f2f5183dfb 163 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
Kojto 115:87f2f5183dfb 164 break; \
Kojto 115:87f2f5183dfb 165 case RCC_USART6CLKSOURCE_LSE: \
Kojto 115:87f2f5183dfb 166 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
Kojto 115:87f2f5183dfb 167 break; \
Kojto 115:87f2f5183dfb 168 default: \
Kojto 115:87f2f5183dfb 169 break; \
Kojto 115:87f2f5183dfb 170 } \
Kojto 115:87f2f5183dfb 171 } \
Kojto 115:87f2f5183dfb 172 } while(0)
Kojto 115:87f2f5183dfb 173
Kojto 115:87f2f5183dfb 174 /** @brief Reports the mask to apply to retrieve the received data
Kojto 115:87f2f5183dfb 175 * according to the word length and to the parity bits activation.
Kojto 115:87f2f5183dfb 176 * @param __HANDLE__: specifies the IRDA Handle
Kojto 115:87f2f5183dfb 177 * @retval mask to apply to USART RDR register value.
Kojto 115:87f2f5183dfb 178 */
Kojto 115:87f2f5183dfb 179 #define IRDA_MASK_COMPUTATION(__HANDLE__) \
Kojto 115:87f2f5183dfb 180 do { \
Kojto 115:87f2f5183dfb 181 if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B) \
Kojto 115:87f2f5183dfb 182 { \
Kojto 115:87f2f5183dfb 183 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
Kojto 115:87f2f5183dfb 184 { \
Kojto 115:87f2f5183dfb 185 (__HANDLE__)->Mask = 0x01FF ; \
Kojto 115:87f2f5183dfb 186 } \
Kojto 115:87f2f5183dfb 187 else \
Kojto 115:87f2f5183dfb 188 { \
Kojto 115:87f2f5183dfb 189 (__HANDLE__)->Mask = 0x00FF ; \
Kojto 115:87f2f5183dfb 190 } \
Kojto 115:87f2f5183dfb 191 } \
Kojto 115:87f2f5183dfb 192 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B) \
Kojto 115:87f2f5183dfb 193 { \
Kojto 115:87f2f5183dfb 194 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
Kojto 115:87f2f5183dfb 195 { \
Kojto 115:87f2f5183dfb 196 (__HANDLE__)->Mask = 0x00FF ; \
Kojto 115:87f2f5183dfb 197 } \
Kojto 115:87f2f5183dfb 198 else \
Kojto 115:87f2f5183dfb 199 { \
Kojto 115:87f2f5183dfb 200 (__HANDLE__)->Mask = 0x007F ; \
Kojto 115:87f2f5183dfb 201 } \
Kojto 115:87f2f5183dfb 202 } \
Kojto 115:87f2f5183dfb 203 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_7B) \
Kojto 115:87f2f5183dfb 204 { \
Kojto 115:87f2f5183dfb 205 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
Kojto 115:87f2f5183dfb 206 { \
Kojto 115:87f2f5183dfb 207 (__HANDLE__)->Mask = 0x007F ; \
Kojto 115:87f2f5183dfb 208 } \
Kojto 115:87f2f5183dfb 209 else \
Kojto 115:87f2f5183dfb 210 { \
Kojto 115:87f2f5183dfb 211 (__HANDLE__)->Mask = 0x003F ; \
Kojto 115:87f2f5183dfb 212 } \
Kojto 115:87f2f5183dfb 213 } \
Kojto 115:87f2f5183dfb 214 } while(0)
Kojto 115:87f2f5183dfb 215
Kojto 115:87f2f5183dfb 216 #define IS_IRDA_WORD_LENGTH(LENGTH) (((LENGTH) == IRDA_WORDLENGTH_7B) || \
Kojto 115:87f2f5183dfb 217 ((LENGTH) == IRDA_WORDLENGTH_8B) || \
Kojto 115:87f2f5183dfb 218 ((LENGTH) == IRDA_WORDLENGTH_9B))
Kojto 115:87f2f5183dfb 219 /**
Kojto 115:87f2f5183dfb 220 * @}
Kojto 115:87f2f5183dfb 221 */
Kojto 115:87f2f5183dfb 222
Kojto 115:87f2f5183dfb 223 /* Exported functions --------------------------------------------------------*/
Kojto 115:87f2f5183dfb 224
Kojto 115:87f2f5183dfb 225 /**
Kojto 115:87f2f5183dfb 226 * @}
Kojto 115:87f2f5183dfb 227 */
Kojto 115:87f2f5183dfb 228
Kojto 115:87f2f5183dfb 229 /**
Kojto 115:87f2f5183dfb 230 * @}
Kojto 115:87f2f5183dfb 231 */
Kojto 115:87f2f5183dfb 232
Kojto 115:87f2f5183dfb 233 #ifdef __cplusplus
Kojto 115:87f2f5183dfb 234 }
Kojto 115:87f2f5183dfb 235 #endif
Kojto 115:87f2f5183dfb 236
Kojto 115:87f2f5183dfb 237 #endif /* __STM32F7xx_HAL_IRDA_EX_H */
Kojto 115:87f2f5183dfb 238
Kojto 115:87f2f5183dfb 239 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/