]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_M0_STM32F0518_IAR/Libraries/STM32F0xx_StdPeriph_Driver/inc/stm32f0xx_usart.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / CORTEX_M0_STM32F0518_IAR / Libraries / STM32F0xx_StdPeriph_Driver / inc / stm32f0xx_usart.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f0xx_usart.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0RC1\r
6   * @date    27-January-2012\r
7   * @brief   This file contains all the functions prototypes for the USART \r
8   *          firmware library.\r
9   ******************************************************************************\r
10   * @attention\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * FOR MORE INFORMATION PLEASE READ CAREFULLY THE LICENSE AGREEMENT FILE\r
20   * LOCATED IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.\r
21   *\r
22   * <h2><center>&copy; COPYRIGHT 2012 STMicroelectronics</center></h2>\r
23   ******************************************************************************\r
24   */\r
25 \r
26 /* Define to prevent recursive inclusion -------------------------------------*/\r
27 #ifndef __STM32F0XX_USART_H\r
28 #define __STM32F0XX_USART_H\r
29 \r
30 #ifdef __cplusplus\r
31  extern "C" {\r
32 #endif\r
33 \r
34 /* Includes ------------------------------------------------------------------*/\r
35 #include "stm32f0xx.h"\r
36 \r
37 /** @addtogroup STM32F0xx_StdPeriph_Driver\r
38   * @{\r
39   */\r
40 \r
41 /** @addtogroup USART\r
42   * @{\r
43   */ \r
44 \r
45 /* Exported types ------------------------------------------------------------*/\r
46 \r
47    \r
48    \r
49 /** \r
50   * @brief  USART Init Structure definition  \r
51   */ \r
52 \r
53 typedef struct\r
54 {\r
55   uint32_t USART_BaudRate;            /*!< This member configures the USART communication baud rate.\r
56                                            The baud rate is computed using the following formula:\r
57                                             - IntegerDivider = ((PCLKx) / (16 * (USART_InitStruct->USART_BaudRate)))\r
58                                             - FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 16) + 0.5 */\r
59 \r
60   uint32_t USART_WordLength;          /*!< Specifies the number of data bits transmitted or received in a frame.\r
61                                            This parameter can be a value of @ref USART_Word_Length */\r
62 \r
63   uint32_t USART_StopBits;            /*!< Specifies the number of stop bits transmitted.\r
64                                            This parameter can be a value of @ref USART_Stop_Bits */\r
65 \r
66   uint32_t USART_Parity;              /*!< Specifies the parity mode.\r
67                                            This parameter can be a value of @ref USART_Parity\r
68                                            @note When parity is enabled, the computed parity is inserted\r
69                                                  at the MSB position of the transmitted data (9th bit when\r
70                                                  the word length is set to 9 data bits; 8th bit when the\r
71                                                  word length is set to 8 data bits). */\r
72  \r
73   uint32_t USART_Mode;                /*!< Specifies wether the Receive or Transmit mode is enabled or disabled.\r
74                                            This parameter can be a value of @ref USART_Mode */\r
75 \r
76   uint32_t USART_HardwareFlowControl; /*!< Specifies wether the hardware flow control mode is enabled\r
77                                            or disabled.\r
78                                            This parameter can be a value of @ref USART_Hardware_Flow_Control*/\r
79 } USART_InitTypeDef;\r
80 \r
81 /** \r
82   * @brief  USART Clock Init Structure definition\r
83   */ \r
84 \r
85 typedef struct\r
86 {\r
87   uint32_t USART_Clock;             /*!< Specifies whether the USART clock is enabled or disabled.\r
88                                          This parameter can be a value of @ref USART_Clock */\r
89 \r
90   uint32_t USART_CPOL;              /*!< Specifies the steady state of the serial clock.\r
91                                          This parameter can be a value of @ref USART_Clock_Polarity */\r
92 \r
93   uint32_t USART_CPHA;              /*!< Specifies the clock transition on which the bit capture is made.\r
94                                          This parameter can be a value of @ref USART_Clock_Phase */\r
95 \r
96   uint32_t USART_LastBit;           /*!< Specifies whether the clock pulse corresponding to the last transmitted\r
97                                          data bit (MSB) has to be output on the SCLK pin in synchronous mode.\r
98                                          This parameter can be a value of @ref USART_Last_Bit */\r
99 } USART_ClockInitTypeDef;\r
100 \r
101 /* Exported constants --------------------------------------------------------*/\r
102 \r
103 /** @defgroup USART_Exported_Constants\r
104   * @{\r
105   */ \r
106 \r
107 #define IS_USART_ALL_PERIPH(PERIPH) (((PERIPH) == USART1) || \\r
108                                      ((PERIPH) == USART2))\r
109 \r
110 #define IS_USART_1_PERIPH(PERIPH) (((PERIPH) == USART1))\r
111 \r
112 /** @defgroup USART_Word_Length \r
113   * @{\r
114   */ \r
115 \r
116 #define USART_WordLength_8b                  ((uint32_t)0x00000000)\r
117 #define USART_WordLength_9b                  USART_CR1_M\r
118 #define IS_USART_WORD_LENGTH(LENGTH) (((LENGTH) == USART_WordLength_8b) || \\r
119                                       ((LENGTH) == USART_WordLength_9b))\r
120 /**\r
121   * @}\r
122   */ \r
123 \r
124 /** @defgroup USART_Stop_Bits \r
125   * @{\r
126   */ \r
127 \r
128 #define USART_StopBits_1                     ((uint32_t)0x00000000)\r
129 #define USART_StopBits_2                     ((uint32_t)USART_CR2_STOP_1)\r
130 #define USART_StopBits_1_5                   ((uint32_t)USART_CR2_STOP_0 | USART_CR2_STOP_1)\r
131 #define IS_USART_STOPBITS(STOPBITS) (((STOPBITS) == USART_StopBits_1) || \\r
132                                      ((STOPBITS) == USART_StopBits_2) || \\r
133                                      ((STOPBITS) == USART_StopBits_1_5))\r
134 /**\r
135   * @}\r
136   */ \r
137 \r
138 /** @defgroup USART_Parity \r
139   * @{\r
140   */ \r
141 \r
142 #define USART_Parity_No                      ((uint32_t)0x00000000)\r
143 #define USART_Parity_Even                    ((uint32_t)USART_CR1_PCE)\r
144 #define USART_Parity_Odd                     ((uint32_t)USART_CR1_PCE | USART_CR1_PS) \r
145 #define IS_USART_PARITY(PARITY) (((PARITY) == USART_Parity_No) || \\r
146                                  ((PARITY) == USART_Parity_Even) || \\r
147                                  ((PARITY) == USART_Parity_Odd))\r
148 /**\r
149   * @}\r
150   */ \r
151 \r
152 /** @defgroup USART_Mode \r
153   * @{\r
154   */ \r
155 \r
156 #define USART_Mode_Rx                        USART_CR1_RE\r
157 #define USART_Mode_Tx                        USART_CR1_TE\r
158 #define IS_USART_MODE(MODE) ((((MODE) & (uint32_t)0xFFFFFFF3) == 0x00) && \\r
159                               ((MODE) != (uint32_t)0x00))\r
160 /**\r
161   * @}\r
162   */ \r
163 \r
164 /** @defgroup USART_Hardware_Flow_Control \r
165   * @{\r
166   */ \r
167 \r
168 #define USART_HardwareFlowControl_None       ((uint32_t)0x00000000)\r
169 #define USART_HardwareFlowControl_RTS        ((uint32_t)USART_CR3_RTSE)\r
170 #define USART_HardwareFlowControl_CTS        ((uint32_t)USART_CR3_CTSE)\r
171 #define USART_HardwareFlowControl_RTS_CTS    ((uint32_t)USART_CR3_RTSE | USART_CR3_CTSE)\r
172 #define IS_USART_HARDWARE_FLOW_CONTROL(CONTROL)\\r
173                               (((CONTROL) == USART_HardwareFlowControl_None) || \\r
174                                ((CONTROL) == USART_HardwareFlowControl_RTS) || \\r
175                                ((CONTROL) == USART_HardwareFlowControl_CTS) || \\r
176                                ((CONTROL) == USART_HardwareFlowControl_RTS_CTS))\r
177 /**\r
178   * @}\r
179   */ \r
180 \r
181 /** @defgroup USART_Clock \r
182   * @{\r
183   */ \r
184   \r
185 #define USART_Clock_Disable                  ((uint32_t)0x00000000)\r
186 #define USART_Clock_Enable                   USART_CR2_CLKEN\r
187 #define IS_USART_CLOCK(CLOCK) (((CLOCK) == USART_Clock_Disable) || \\r
188                                ((CLOCK) == USART_Clock_Enable))\r
189 /**\r
190   * @}\r
191   */ \r
192 \r
193 /** @defgroup USART_Clock_Polarity \r
194   * @{\r
195   */\r
196   \r
197 #define USART_CPOL_Low                       ((uint32_t)0x00000000)\r
198 #define USART_CPOL_High                      USART_CR2_CPOL\r
199 #define IS_USART_CPOL(CPOL) (((CPOL) == USART_CPOL_Low) || ((CPOL) == USART_CPOL_High))\r
200 \r
201 /**\r
202   * @}\r
203   */ \r
204 \r
205 /** @defgroup USART_Clock_Phase\r
206   * @{\r
207   */\r
208 \r
209 #define USART_CPHA_1Edge                     ((uint32_t)0x00000000)\r
210 #define USART_CPHA_2Edge                     USART_CR2_CPHA\r
211 #define IS_USART_CPHA(CPHA) (((CPHA) == USART_CPHA_1Edge) || ((CPHA) == USART_CPHA_2Edge))\r
212 \r
213 /**\r
214   * @}\r
215   */\r
216 \r
217 /** @defgroup USART_Last_Bit\r
218   * @{\r
219   */\r
220 \r
221 #define USART_LastBit_Disable                ((uint32_t)0x00000000)\r
222 #define USART_LastBit_Enable                 USART_CR2_LBCL\r
223 #define IS_USART_LASTBIT(LASTBIT) (((LASTBIT) == USART_LastBit_Disable) || \\r
224                                    ((LASTBIT) == USART_LastBit_Enable))\r
225 /**\r
226   * @}\r
227   */\r
228   \r
229 /** @defgroup USART_DMA_Requests \r
230   * @{\r
231   */\r
232 \r
233 #define USART_DMAReq_Tx                      USART_CR3_DMAT\r
234 #define USART_DMAReq_Rx                      USART_CR3_DMAR\r
235 #define IS_USART_DMAREQ(DMAREQ) ((((DMAREQ) & (uint32_t)0xFFFFFF3F) == 0x00) && \\r
236                                   ((DMAREQ) != (uint32_t)0x00))\r
237 \r
238 /**\r
239   * @}\r
240   */ \r
241 \r
242 /** @defgroup USART_DMA_Recception_Error\r
243   * @{\r
244   */\r
245 \r
246 #define USART_DMAOnError_Enable              ((uint32_t)0x00000000)\r
247 #define USART_DMAOnError_Disable             USART_CR3_DDRE\r
248 #define IS_USART_DMAONERROR(DMAERROR) (((DMAERROR) == USART_DMAOnError_Disable)|| \\r
249                                        ((DMAERROR) == USART_DMAOnError_Enable))\r
250 /**\r
251   * @}\r
252   */ \r
253 \r
254 /** @defgroup USART_MuteMode_WakeUp_methods\r
255   * @{\r
256   */\r
257 \r
258 #define USART_WakeUp_IdleLine                ((uint32_t)0x00000000)\r
259 #define USART_WakeUp_AddressMark             USART_CR1_WAKE\r
260 #define IS_USART_MUTEMODE_WAKEUP(WAKEUP) (((WAKEUP) == USART_WakeUp_IdleLine) || \\r
261                                           ((WAKEUP) == USART_WakeUp_AddressMark))\r
262 /**\r
263   * @}\r
264   */\r
265 \r
266 /** @defgroup USART_Address_Detection\r
267   * @{\r
268   */ \r
269 \r
270 #define USART_AddressLength_4b               ((uint32_t)0x00000000)\r
271 #define USART_AddressLength_7b               USART_CR2_ADDM7\r
272 #define IS_USART_ADDRESS_DETECTION(ADDRESS) (((ADDRESS) == USART_AddressLength_4b) || \\r
273                                              ((ADDRESS) == USART_AddressLength_7b))\r
274 /**\r
275   * @}\r
276   */ \r
277 \r
278 /** @defgroup USART_StopMode_WakeUp_methods \r
279   * @{\r
280   */ \r
281 \r
282 #define USART_WakeUpSource_AddressMatch      ((uint32_t)0x00000000)\r
283 #define USART_WakeUpSource_StartBit          ((uint32_t)USART_CR3_WUS_1)\r
284 #define USART_WakeUpSource_RXNE              ((uint32_t)USART_CR3_WUS_0 | USART_CR3_WUS_1)\r
285 #define IS_USART_STOPMODE_WAKEUPSOURCE(SOURCE) (((SOURCE) == USART_WakeUpSource_AddressMatch) || \\r
286                                                 ((SOURCE) == USART_WakeUpSource_StartBit) || \\r
287                                                 ((SOURCE) == USART_WakeUpSource_RXNE))\r
288 /**\r
289   * @}\r
290   */ \r
291 \r
292 /** @defgroup USART_LIN_Break_Detection_Length \r
293   * @{\r
294   */\r
295   \r
296 #define USART_LINBreakDetectLength_10b       ((uint32_t)0x00000000)\r
297 #define USART_LINBreakDetectLength_11b       USART_CR2_LBDL\r
298 #define IS_USART_LIN_BREAK_DETECT_LENGTH(LENGTH) \\r
299                                (((LENGTH) == USART_LINBreakDetectLength_10b) || \\r
300                                 ((LENGTH) == USART_LINBreakDetectLength_11b))\r
301 /**\r
302   * @}\r
303   */\r
304 \r
305 /** @defgroup USART_IrDA_Low_Power \r
306   * @{\r
307   */\r
308 \r
309 #define USART_IrDAMode_LowPower              USART_CR3_IRLP\r
310 #define USART_IrDAMode_Normal                ((uint32_t)0x00000000)\r
311 #define IS_USART_IRDA_MODE(MODE) (((MODE) == USART_IrDAMode_LowPower) || \\r
312                                   ((MODE) == USART_IrDAMode_Normal))\r
313 /**\r
314   * @}\r
315   */ \r
316 \r
317 /** @defgroup USART_DE_Polarity \r
318   * @{\r
319   */\r
320 \r
321 #define USART_DEPolarity_High                ((uint32_t)0x00000000)\r
322 #define USART_DEPolarity_Low                 USART_CR3_DEP\r
323 #define IS_USART_DE_POLARITY(POLARITY) (((POLARITY) == USART_DEPolarity_Low) || \\r
324                                         ((POLARITY) == USART_DEPolarity_High))\r
325 /**\r
326   * @}\r
327   */ \r
328 \r
329 /** @defgroup USART_Inversion_Pins \r
330   * @{\r
331   */\r
332 \r
333 #define USART_InvPin_Tx                      USART_CR2_TXINV\r
334 #define USART_InvPin_Rx                      USART_CR2_RXINV\r
335 #define IS_USART_INVERSTION_PIN(PIN) ((((PIN) & (uint32_t)0xFFFCFFFF) == 0x00) && \\r
336                                        ((PIN) != (uint32_t)0x00))\r
337 \r
338 /**\r
339   * @}\r
340   */ \r
341 \r
342 /** @defgroup USART_AutoBaudRate_Mode \r
343   * @{\r
344   */\r
345 \r
346 #define USART_AutoBaudRate_StartBit          ((uint32_t)0x00000000)\r
347 #define USART_AutoBaudRate_FallingEdge       USART_CR2_ABRMODE_0\r
348 #define IS_USART_AUTOBAUDRATE_MODE(MODE) (((MODE) == USART_AutoBaudRate_StartBit) || \\r
349                                           ((MODE) == USART_AutoBaudRate_FallingEdge))\r
350 /**\r
351   * @}\r
352   */ \r
353 \r
354 /** @defgroup USART_OVR_DETECTION\r
355   * @{\r
356   */\r
357 \r
358 #define USART_OVRDetection_Enable            ((uint32_t)0x00000000)\r
359 #define USART_OVRDetection_Disable           USART_CR3_OVRDIS\r
360 #define IS_USART_OVRDETECTION(OVR) (((OVR) == USART_OVRDetection_Enable)|| \\r
361                                     ((OVR) == USART_OVRDetection_Disable))\r
362 /**\r
363   * @}\r
364   */ \r
365 /** @defgroup USART_Request \r
366   * @{\r
367   */\r
368 \r
369 #define USART_Request_ABRRQ                  USART_RQR_ABRRQ\r
370 #define USART_Request_SBKRQ                  USART_RQR_SBKRQ\r
371 #define USART_Request_MMRQ                   USART_RQR_MMRQ\r
372 #define USART_Request_RXFRQ                  USART_RQR_RXFRQ\r
373 #define USART_Request_TXFRQ                  USART_RQR_TXFRQ\r
374 \r
375 #define IS_USART_REQUEST(REQUEST) (((REQUEST) == USART_Request_TXFRQ) || \\r
376                                    ((REQUEST) == USART_Request_RXFRQ) || \\r
377                                    ((REQUEST) == USART_Request_MMRQ) || \\r
378                                    ((REQUEST) == USART_Request_SBKRQ) || \\r
379                                    ((REQUEST) == USART_Request_ABRRQ))\r
380 /**\r
381   * @}\r
382   */ \r
383 \r
384 /** @defgroup USART_Flags \r
385   * @{\r
386   */\r
387 #define USART_FLAG_REACK                     USART_ISR_REACK\r
388 #define USART_FLAG_TEACK                     USART_ISR_TEACK\r
389 #define USART_FLAG_WU                        USART_ISR_WUF\r
390 #define USART_FLAG_RWU                       USART_ISR_RWU\r
391 #define USART_FLAG_SBK                       USART_ISR_SBKF\r
392 #define USART_FLAG_CM                        USART_ISR_CMF\r
393 #define USART_FLAG_BUSY                      USART_ISR_BUSY\r
394 #define USART_FLAG_ABRF                      USART_ISR_ABRF\r
395 #define USART_FLAG_ABRE                      USART_ISR_ABRE\r
396 #define USART_FLAG_EOB                       USART_ISR_EOBF\r
397 #define USART_FLAG_RTO                       USART_ISR_RTOF\r
398 #define USART_FLAG_nCTSS                     USART_ISR_CTS \r
399 #define USART_FLAG_CTS                       USART_ISR_CTSIF\r
400 #define USART_FLAG_LBD                       USART_ISR_LBD\r
401 #define USART_FLAG_TXE                       USART_ISR_TXE\r
402 #define USART_FLAG_TC                        USART_ISR_TC\r
403 #define USART_FLAG_RXNE                      USART_ISR_RXNE\r
404 #define USART_FLAG_IDLE                      USART_ISR_IDLE\r
405 #define USART_FLAG_ORE                       USART_ISR_ORE\r
406 #define USART_FLAG_NE                        USART_ISR_NE\r
407 #define USART_FLAG_FE                        USART_ISR_FE\r
408 #define USART_FLAG_PE                        USART_ISR_PE\r
409 #define IS_USART_FLAG(FLAG) (((FLAG) == USART_FLAG_PE) || ((FLAG) == USART_FLAG_TXE) || \\r
410                              ((FLAG) == USART_FLAG_TC) || ((FLAG) == USART_FLAG_RXNE) || \\r
411                              ((FLAG) == USART_FLAG_IDLE) || ((FLAG) == USART_FLAG_LBD) || \\r
412                              ((FLAG) == USART_FLAG_CTS) || ((FLAG) == USART_FLAG_ORE) || \\r
413                              ((FLAG) == USART_FLAG_NE) || ((FLAG) == USART_FLAG_FE) || \\r
414                              ((FLAG) == USART_FLAG_nCTSS) || ((FLAG) == USART_FLAG_RTO) || \\r
415                              ((FLAG) == USART_FLAG_EOB) || ((FLAG) == USART_FLAG_ABRE) || \\r
416                              ((FLAG) == USART_FLAG_ABRF) || ((FLAG) == USART_FLAG_BUSY) || \\r
417                              ((FLAG) == USART_FLAG_CM) || ((FLAG) == USART_FLAG_SBK) || \\r
418                              ((FLAG) == USART_FLAG_RWU) || ((FLAG) == USART_FLAG_WU) || \\r
419                              ((FLAG) == USART_FLAG_TEACK)|| ((FLAG) == USART_FLAG_REACK))\r
420 \r
421 #define IS_USART_CLEAR_FLAG(FLAG) (((FLAG) == USART_FLAG_WU) || ((FLAG) == USART_FLAG_TC) || \\r
422                                    ((FLAG) == USART_FLAG_IDLE) || ((FLAG) == USART_FLAG_ORE) || \\r
423                                    ((FLAG) == USART_FLAG_NE) || ((FLAG) == USART_FLAG_FE) || \\r
424                                    ((FLAG) == USART_FLAG_LBD) || ((FLAG) == USART_FLAG_CTS) || \\r
425                                    ((FLAG) == USART_FLAG_RTO) || ((FLAG) == USART_FLAG_EOB) || \\r
426                                    ((FLAG) == USART_FLAG_CM) || ((FLAG) == USART_FLAG_PE))\r
427 /**\r
428   * @}\r
429   */ \r
430 \r
431 /** @defgroup USART_Interrupt_definition \r
432   * @brief USART Interrupt definition\r
433   * USART_IT possible values\r
434   * Elements values convention: 0xZZZZYYXX\r
435   *   XX: Position of the corresponding Interrupt\r
436   *   YY: Register index\r
437   *   ZZZZ: Flag position\r
438   * @{\r
439   */\r
440 \r
441 #define USART_IT_WU                          ((uint32_t)0x00140316)\r
442 #define USART_IT_CM                          ((uint32_t)0x0011010E)\r
443 #define USART_IT_EOB                         ((uint32_t)0x000C011B)\r
444 #define USART_IT_RTO                         ((uint32_t)0x000B011A)\r
445 #define USART_IT_PE                          ((uint32_t)0x00000108)\r
446 #define USART_IT_TXE                         ((uint32_t)0x00070107)\r
447 #define USART_IT_TC                          ((uint32_t)0x00060106)\r
448 #define USART_IT_RXNE                        ((uint32_t)0x00050105)\r
449 #define USART_IT_IDLE                        ((uint32_t)0x00040104)\r
450 #define USART_IT_LBD                         ((uint32_t)0x00080206)\r
451 #define USART_IT_CTS                         ((uint32_t)0x0009030A) \r
452 #define USART_IT_ERR                         ((uint32_t)0x00000300)\r
453 #define USART_IT_ORE                         ((uint32_t)0x00030300)\r
454 #define USART_IT_NE                          ((uint32_t)0x00020300)\r
455 #define USART_IT_FE                          ((uint32_t)0x00010300)\r
456 \r
457 #define IS_USART_CONFIG_IT(IT) (((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) || \\r
458                                 ((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \\r
459                                 ((IT) == USART_IT_IDLE) || ((IT) == USART_IT_LBD) || \\r
460                                 ((IT) == USART_IT_CTS) || ((IT) == USART_IT_ERR) || \\r
461                                 ((IT) == USART_IT_RTO) || ((IT) == USART_IT_EOB) || \\r
462                                 ((IT) == USART_IT_CM) || ((IT) == USART_IT_WU))\r
463 \r
464 #define IS_USART_GET_IT(IT) (((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) || \\r
465                              ((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \\r
466                              ((IT) == USART_IT_IDLE) || ((IT) == USART_IT_LBD) || \\r
467                              ((IT) == USART_IT_CTS) || ((IT) == USART_IT_ORE) || \\r
468                              ((IT) == USART_IT_NE) || ((IT) == USART_IT_FE) || \\r
469                              ((IT) == USART_IT_RTO) || ((IT) == USART_IT_EOB) || \\r
470                              ((IT) == USART_IT_CM) || ((IT) == USART_IT_WU))\r
471 \r
472 #define IS_USART_CLEAR_IT(IT) (((IT) == USART_IT_TC) || ((IT) == USART_IT_PE) || \\r
473                                ((IT) == USART_IT_FE) || ((IT) == USART_IT_NE) || \\r
474                                ((IT) == USART_IT_ORE) || ((IT) == USART_IT_IDLE) || \\r
475                                ((IT) == USART_IT_LBD) || ((IT) == USART_IT_CTS) || \\r
476                                ((IT) == USART_IT_RTO) || ((IT) == USART_IT_EOB) || \\r
477                                ((IT) == USART_IT_CM) || ((IT) == USART_IT_WU))\r
478 /**\r
479   * @}\r
480   */\r
481 \r
482 /** @defgroup USART_Global_definition \r
483   * @{\r
484   */\r
485 \r
486 #define IS_USART_BAUDRATE(BAUDRATE) (((BAUDRATE) > 0) && ((BAUDRATE) < 0x005B8D81))\r
487 #define IS_USART_DE_ASSERTION_DEASSERTION_TIME(TIME) ((TIME) <= 0x1F)\r
488 #define IS_USART_AUTO_RETRY_COUNTER(COUNTER) ((COUNTER) <= 0x7)\r
489 #define IS_USART_TIMEOUT(TIMEOUT) ((TIMEOUT) <= 0x00FFFFFF)\r
490 #define IS_USART_DATA(DATA) ((DATA) <= 0x1FF)\r
491 \r
492 /**\r
493   * @}\r
494   */ \r
495 \r
496 /**\r
497   * @}\r
498   */ \r
499 \r
500 /* Exported macro ------------------------------------------------------------*/\r
501 /* Exported functions ------------------------------------------------------- */\r
502 \r
503 /* Initialization and Configuration functions *********************************/\r
504 void USART_DeInit(USART_TypeDef* USARTx);\r
505 void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);\r
506 void USART_StructInit(USART_InitTypeDef* USART_InitStruct);\r
507 void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USART_ClockInitStruct);\r
508 void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct);\r
509 void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
510 void USART_DirectionModeCmd(USART_TypeDef* USARTx, uint32_t USART_DirectionMode, FunctionalState NewState);\r
511 void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler);\r
512 void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
513 void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
514 void USART_MSBFirstCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
515 void USART_DataInvCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
516 void USART_InvPinCmd(USART_TypeDef* USARTx, uint32_t USART_InvPin, FunctionalState NewState);\r
517 void USART_SWAPPinCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
518 void USART_ReceiverTimeOutCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
519 void USART_SetReceiverTimeOut(USART_TypeDef* USARTx, uint32_t USART_ReceiverTimeOut);\r
520 \r
521 /* STOP Mode functions ********************************************************/\r
522 void USART_STOPModeCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
523 void USART_StopModeWakeUpSourceConfig(USART_TypeDef* USARTx, uint32_t USART_WakeUpSource);\r
524 \r
525 /* AutoBaudRate functions *****************************************************/\r
526 void USART_AutoBaudRateCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
527 void USART_AutoBaudRateConfig(USART_TypeDef* USARTx, uint32_t USART_AutoBaudRate);\r
528 void USART_AutoBaudRateNewRequest(USART_TypeDef* USARTx);\r
529 \r
530 /* Data transfers functions ***************************************************/\r
531 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);\r
532 uint16_t USART_ReceiveData(USART_TypeDef* USARTx);\r
533 \r
534 /* Multi-Processor Communication functions ************************************/\r
535 void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address);\r
536 void USART_MuteModeWakeUpConfig(USART_TypeDef* USARTx, uint32_t USART_WakeUp);\r
537 void USART_MuteModeCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
538 void USART_AddressDetectionConfig(USART_TypeDef* USARTx, uint32_t USART_AddressLength);\r
539 /* LIN mode functions *********************************************************/\r
540 void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint32_t USART_LINBreakDetectLength);\r
541 void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
542 \r
543 /* Half-duplex mode function **************************************************/\r
544 void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
545 \r
546 /* Smartcard mode functions ***************************************************/\r
547 void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
548 void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
549 void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime);\r
550 void USART_SetAutoRetryCount(USART_TypeDef* USARTx, uint8_t USART_AutoCount);\r
551 void USART_SetBlockLength(USART_TypeDef* USARTx, uint8_t USART_BlockLength);\r
552 \r
553 /* IrDA mode functions ********************************************************/\r
554 void USART_IrDAConfig(USART_TypeDef* USARTx, uint32_t USART_IrDAMode);\r
555 void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
556 \r
557 /* RS485 mode functions *******************************************************/\r
558 void USART_DECmd(USART_TypeDef* USARTx, FunctionalState NewState);\r
559 void USART_DEPolarityConfig(USART_TypeDef* USARTx, uint32_t USART_DEPolarity);\r
560 void USART_SetDEAssertionTime(USART_TypeDef* USARTx, uint32_t USART_DEAssertionTime);\r
561 void USART_SetDEDeassertionTime(USART_TypeDef* USARTx, uint32_t USART_DEDeassertionTime);\r
562 \r
563 /* DMA transfers management functions *****************************************/\r
564 void USART_DMACmd(USART_TypeDef* USARTx, uint32_t USART_DMAReq, FunctionalState NewState);\r
565 void USART_DMAReceptionErrorConfig(USART_TypeDef* USARTx, uint32_t USART_DMAOnError);\r
566 \r
567 /* Interrupts and flags management functions **********************************/\r
568 void USART_ITConfig(USART_TypeDef* USARTx, uint32_t USART_IT, FunctionalState NewState);\r
569 void USART_RequestCmd(USART_TypeDef* USARTx, uint32_t USART_Request, FunctionalState NewState);\r
570 void USART_OverrunDetectionConfig(USART_TypeDef* USARTx, uint32_t USART_OVRDetection);\r
571 FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint32_t USART_FLAG);\r
572 void USART_ClearFlag(USART_TypeDef* USARTx, uint32_t USART_FLAG);\r
573 ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint32_t USART_IT);\r
574 void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint32_t USART_IT);\r
575 \r
576 #ifdef __cplusplus\r
577 }\r
578 #endif\r
579 \r
580 #endif /* __STM32F0XX_USART_H */\r
581 \r
582 /**\r
583   * @}\r
584   */ \r
585 \r
586 /**\r
587   * @}\r
588   */ \r
589 \r
590 /******************* (C) COPYRIGHT 2012 STMicroelectronics *****END OF FILE****/\r