mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
AnnaBridge
Date:
Wed Nov 08 17:18:06 2017 +0000
Revision:
156:ff21514d8981
Child:
163:e59c8e839560
Reverting back to release 154 of the mbed library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1 /**
AnnaBridge 156:ff21514d8981 2 ******************************************************************************
AnnaBridge 156:ff21514d8981 3 * @file stm32f7xx_hal_usart_ex.h
AnnaBridge 156:ff21514d8981 4 * @author MCD Application Team
AnnaBridge 156:ff21514d8981 5 * @version V1.2.2
AnnaBridge 156:ff21514d8981 6 * @date 14-April-2017
AnnaBridge 156:ff21514d8981 7 * @brief Header file of USART HAL Extension module.
AnnaBridge 156:ff21514d8981 8 ******************************************************************************
AnnaBridge 156:ff21514d8981 9 * @attention
AnnaBridge 156:ff21514d8981 10 *
AnnaBridge 156:ff21514d8981 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 156:ff21514d8981 12 *
AnnaBridge 156:ff21514d8981 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 156:ff21514d8981 14 * are permitted provided that the following conditions are met:
AnnaBridge 156:ff21514d8981 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 156:ff21514d8981 16 * this list of conditions and the following disclaimer.
AnnaBridge 156:ff21514d8981 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 156:ff21514d8981 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 156:ff21514d8981 19 * and/or other materials provided with the distribution.
AnnaBridge 156:ff21514d8981 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 156:ff21514d8981 21 * may be used to endorse or promote products derived from this software
AnnaBridge 156:ff21514d8981 22 * without specific prior written permission.
AnnaBridge 156:ff21514d8981 23 *
AnnaBridge 156:ff21514d8981 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 156:ff21514d8981 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 156:ff21514d8981 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 156:ff21514d8981 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 156:ff21514d8981 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 156:ff21514d8981 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 156:ff21514d8981 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 156:ff21514d8981 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 156:ff21514d8981 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 156:ff21514d8981 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 156:ff21514d8981 34 *
AnnaBridge 156:ff21514d8981 35 ******************************************************************************
AnnaBridge 156:ff21514d8981 36 */
AnnaBridge 156:ff21514d8981 37
AnnaBridge 156:ff21514d8981 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 156:ff21514d8981 39 #ifndef __STM32F7xx_HAL_USART_EX_H
AnnaBridge 156:ff21514d8981 40 #define __STM32F7xx_HAL_USART_EX_H
AnnaBridge 156:ff21514d8981 41
AnnaBridge 156:ff21514d8981 42 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 43 extern "C" {
AnnaBridge 156:ff21514d8981 44 #endif
AnnaBridge 156:ff21514d8981 45
AnnaBridge 156:ff21514d8981 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 47 #include "stm32f7xx_hal_def.h"
AnnaBridge 156:ff21514d8981 48
AnnaBridge 156:ff21514d8981 49 /** @addtogroup STM32F7xx_HAL_Driver
AnnaBridge 156:ff21514d8981 50 * @{
AnnaBridge 156:ff21514d8981 51 */
AnnaBridge 156:ff21514d8981 52
AnnaBridge 156:ff21514d8981 53 /** @addtogroup USARTEx
AnnaBridge 156:ff21514d8981 54 * @{
AnnaBridge 156:ff21514d8981 55 */
AnnaBridge 156:ff21514d8981 56
AnnaBridge 156:ff21514d8981 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 58 /* Exported constants --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 59 /** @defgroup USARTEx_Exported_Constants USARTEx Exported Constants
AnnaBridge 156:ff21514d8981 60 * @{
AnnaBridge 156:ff21514d8981 61 */
AnnaBridge 156:ff21514d8981 62
AnnaBridge 156:ff21514d8981 63 /** @defgroup USARTEx_Word_Length USARTEx Word Length
AnnaBridge 156:ff21514d8981 64 * @{
AnnaBridge 156:ff21514d8981 65 */
AnnaBridge 156:ff21514d8981 66 #define USART_WORDLENGTH_7B ((uint32_t)USART_CR1_M_1)
AnnaBridge 156:ff21514d8981 67 #define USART_WORDLENGTH_8B ((uint32_t)0x00000000U)
AnnaBridge 156:ff21514d8981 68 #define USART_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
AnnaBridge 156:ff21514d8981 69 /**
AnnaBridge 156:ff21514d8981 70 * @}
AnnaBridge 156:ff21514d8981 71 */
AnnaBridge 156:ff21514d8981 72
AnnaBridge 156:ff21514d8981 73 /**
AnnaBridge 156:ff21514d8981 74 * @}
AnnaBridge 156:ff21514d8981 75 */
AnnaBridge 156:ff21514d8981 76
AnnaBridge 156:ff21514d8981 77 /* Exported functions --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 78
AnnaBridge 156:ff21514d8981 79 /* Private macros ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 80 /** @defgroup USARTEx_Private_Macros USARTEx Private Macros
AnnaBridge 156:ff21514d8981 81 * @{
AnnaBridge 156:ff21514d8981 82 */
AnnaBridge 156:ff21514d8981 83
AnnaBridge 156:ff21514d8981 84 /** @brief Computes the USART mask to apply to retrieve the received data
AnnaBridge 156:ff21514d8981 85 * according to the word length and to the parity bits activation.
AnnaBridge 156:ff21514d8981 86 * If PCE = 1, the parity bit is not included in the data extracted
AnnaBridge 156:ff21514d8981 87 * by the reception API().
AnnaBridge 156:ff21514d8981 88 * This masking operation is not carried out in the case of
AnnaBridge 156:ff21514d8981 89 * DMA transfers.
AnnaBridge 156:ff21514d8981 90 * @param __HANDLE__: specifies the USART Handle
AnnaBridge 156:ff21514d8981 91 * @retval none
AnnaBridge 156:ff21514d8981 92 */
AnnaBridge 156:ff21514d8981 93 #define __HAL_USART_MASK_COMPUTATION(__HANDLE__) \
AnnaBridge 156:ff21514d8981 94 do { \
AnnaBridge 156:ff21514d8981 95 if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_9B) \
AnnaBridge 156:ff21514d8981 96 { \
AnnaBridge 156:ff21514d8981 97 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
AnnaBridge 156:ff21514d8981 98 { \
AnnaBridge 156:ff21514d8981 99 (__HANDLE__)->Mask = 0x01FF ; \
AnnaBridge 156:ff21514d8981 100 } \
AnnaBridge 156:ff21514d8981 101 else \
AnnaBridge 156:ff21514d8981 102 { \
AnnaBridge 156:ff21514d8981 103 (__HANDLE__)->Mask = 0x00FF ; \
AnnaBridge 156:ff21514d8981 104 } \
AnnaBridge 156:ff21514d8981 105 } \
AnnaBridge 156:ff21514d8981 106 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_8B) \
AnnaBridge 156:ff21514d8981 107 { \
AnnaBridge 156:ff21514d8981 108 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
AnnaBridge 156:ff21514d8981 109 { \
AnnaBridge 156:ff21514d8981 110 (__HANDLE__)->Mask = 0x00FF ; \
AnnaBridge 156:ff21514d8981 111 } \
AnnaBridge 156:ff21514d8981 112 else \
AnnaBridge 156:ff21514d8981 113 { \
AnnaBridge 156:ff21514d8981 114 (__HANDLE__)->Mask = 0x007F ; \
AnnaBridge 156:ff21514d8981 115 } \
AnnaBridge 156:ff21514d8981 116 } \
AnnaBridge 156:ff21514d8981 117 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_7B) \
AnnaBridge 156:ff21514d8981 118 { \
AnnaBridge 156:ff21514d8981 119 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
AnnaBridge 156:ff21514d8981 120 { \
AnnaBridge 156:ff21514d8981 121 (__HANDLE__)->Mask = 0x007F ; \
AnnaBridge 156:ff21514d8981 122 } \
AnnaBridge 156:ff21514d8981 123 else \
AnnaBridge 156:ff21514d8981 124 { \
AnnaBridge 156:ff21514d8981 125 (__HANDLE__)->Mask = 0x003F ; \
AnnaBridge 156:ff21514d8981 126 } \
AnnaBridge 156:ff21514d8981 127 } \
AnnaBridge 156:ff21514d8981 128 } while(0)
AnnaBridge 156:ff21514d8981 129
AnnaBridge 156:ff21514d8981 130 #define IS_USART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == USART_WORDLENGTH_7B) || \
AnnaBridge 156:ff21514d8981 131 ((__LENGTH__) == USART_WORDLENGTH_8B) || \
AnnaBridge 156:ff21514d8981 132 ((__LENGTH__) == USART_WORDLENGTH_9B))
AnnaBridge 156:ff21514d8981 133 /**
AnnaBridge 156:ff21514d8981 134 * @}
AnnaBridge 156:ff21514d8981 135 */
AnnaBridge 156:ff21514d8981 136
AnnaBridge 156:ff21514d8981 137 /* Exported functions --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 138 /* Initialization/de-initialization methods **********************************/
AnnaBridge 156:ff21514d8981 139 /* IO operation methods *******************************************************/
AnnaBridge 156:ff21514d8981 140 /* Peripheral Control methods ************************************************/
AnnaBridge 156:ff21514d8981 141 /* Peripheral State methods **************************************************/
AnnaBridge 156:ff21514d8981 142
AnnaBridge 156:ff21514d8981 143
AnnaBridge 156:ff21514d8981 144 /**
AnnaBridge 156:ff21514d8981 145 * @}
AnnaBridge 156:ff21514d8981 146 */
AnnaBridge 156:ff21514d8981 147
AnnaBridge 156:ff21514d8981 148 /**
AnnaBridge 156:ff21514d8981 149 * @}
AnnaBridge 156:ff21514d8981 150 */
AnnaBridge 156:ff21514d8981 151
AnnaBridge 156:ff21514d8981 152 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 153 }
AnnaBridge 156:ff21514d8981 154 #endif
AnnaBridge 156:ff21514d8981 155
AnnaBridge 156:ff21514d8981 156 #endif /* __STM32F7xx_HAL_USART_EX_H */
AnnaBridge 156:ff21514d8981 157
AnnaBridge 156:ff21514d8981 158 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/