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