stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32H7xx_HAL_UART_EX_H
22 #define STM32H7xx_HAL_UART_EX_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32h7xx_hal_def.h"
30 
39 /* Exported types ------------------------------------------------------------*/
47 typedef struct
48 {
49  uint32_t WakeUpEvent;
54  uint16_t AddressLength;
57  uint8_t Address;
59 
64 /* Exported constants --------------------------------------------------------*/
72 #define UART_WORDLENGTH_7B USART_CR1_M1
73 #define UART_WORDLENGTH_8B 0x00000000U
74 #define UART_WORDLENGTH_9B USART_CR1_M0
82 #define UART_ADDRESS_DETECT_4B 0x00000000U
83 #define UART_ADDRESS_DETECT_7B USART_CR2_ADDM7
92 #define UART_FIFOMODE_DISABLE 0x00000000U
93 #define UART_FIFOMODE_ENABLE USART_CR1_FIFOEN
102 #define UART_TXFIFO_THRESHOLD_1_8 0x00000000U
103 #define UART_TXFIFO_THRESHOLD_1_4 USART_CR3_TXFTCFG_0
104 #define UART_TXFIFO_THRESHOLD_1_2 USART_CR3_TXFTCFG_1
105 #define UART_TXFIFO_THRESHOLD_3_4 (USART_CR3_TXFTCFG_0|USART_CR3_TXFTCFG_1)
106 #define UART_TXFIFO_THRESHOLD_7_8 USART_CR3_TXFTCFG_2
107 #define UART_TXFIFO_THRESHOLD_8_8 (USART_CR3_TXFTCFG_2|USART_CR3_TXFTCFG_0)
116 #define UART_RXFIFO_THRESHOLD_1_8 0x00000000U
117 #define UART_RXFIFO_THRESHOLD_1_4 USART_CR3_RXFTCFG_0
118 #define UART_RXFIFO_THRESHOLD_1_2 USART_CR3_RXFTCFG_1
119 #define UART_RXFIFO_THRESHOLD_3_4 (USART_CR3_RXFTCFG_0|USART_CR3_RXFTCFG_1)
120 #define UART_RXFIFO_THRESHOLD_7_8 USART_CR3_RXFTCFG_2
121 #define UART_RXFIFO_THRESHOLD_8_8 (USART_CR3_RXFTCFG_2|USART_CR3_RXFTCFG_0)
130 /* Exported macros -----------------------------------------------------------*/
131 /* Exported functions --------------------------------------------------------*/
140 /* Initialization and de-initialization functions ****************************/
141 HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime,
142  uint32_t DeassertionTime);
143 
153 
156 
165 /* Peripheral Control functions **********************************************/
169 
171 
176 
177 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen,
178  uint32_t Timeout);
181 
182 
191 /* Private macros ------------------------------------------------------------*/
201 #if defined(UART9) && defined(USART10)
202 #define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
203  do { \
204  if((__HANDLE__)->Instance == USART1) \
205  { \
206  switch(__HAL_RCC_GET_USART1_SOURCE()) \
207  { \
208  case RCC_USART1CLKSOURCE_D2PCLK2: \
209  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
210  break; \
211  case RCC_USART1CLKSOURCE_PLL2: \
212  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
213  break; \
214  case RCC_USART1CLKSOURCE_PLL3: \
215  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
216  break; \
217  case RCC_USART1CLKSOURCE_HSI: \
218  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
219  break; \
220  case RCC_USART1CLKSOURCE_CSI: \
221  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
222  break; \
223  case RCC_USART1CLKSOURCE_LSE: \
224  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
225  break; \
226  default: \
227  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
228  break; \
229  } \
230  } \
231  else if((__HANDLE__)->Instance == USART2) \
232  { \
233  switch(__HAL_RCC_GET_USART2_SOURCE()) \
234  { \
235  case RCC_USART2CLKSOURCE_D2PCLK1: \
236  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
237  break; \
238  case RCC_USART2CLKSOURCE_PLL2: \
239  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
240  break; \
241  case RCC_USART2CLKSOURCE_PLL3: \
242  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
243  break; \
244  case RCC_USART2CLKSOURCE_HSI: \
245  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
246  break; \
247  case RCC_USART2CLKSOURCE_CSI: \
248  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
249  break; \
250  case RCC_USART2CLKSOURCE_LSE: \
251  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
252  break; \
253  default: \
254  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
255  break; \
256  } \
257  } \
258  else if((__HANDLE__)->Instance == USART3) \
259  { \
260  switch(__HAL_RCC_GET_USART3_SOURCE()) \
261  { \
262  case RCC_USART3CLKSOURCE_D2PCLK1: \
263  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
264  break; \
265  case RCC_USART3CLKSOURCE_PLL2: \
266  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
267  break; \
268  case RCC_USART3CLKSOURCE_PLL3: \
269  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
270  break; \
271  case RCC_USART3CLKSOURCE_HSI: \
272  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
273  break; \
274  case RCC_USART3CLKSOURCE_CSI: \
275  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
276  break; \
277  case RCC_USART3CLKSOURCE_LSE: \
278  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
279  break; \
280  default: \
281  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
282  break; \
283  } \
284  } \
285  else if((__HANDLE__)->Instance == UART4) \
286  { \
287  switch(__HAL_RCC_GET_UART4_SOURCE()) \
288  { \
289  case RCC_UART4CLKSOURCE_D2PCLK1: \
290  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
291  break; \
292  case RCC_UART4CLKSOURCE_PLL2: \
293  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
294  break; \
295  case RCC_UART4CLKSOURCE_PLL3: \
296  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
297  break; \
298  case RCC_UART4CLKSOURCE_HSI: \
299  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
300  break; \
301  case RCC_UART4CLKSOURCE_CSI: \
302  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
303  break; \
304  case RCC_UART4CLKSOURCE_LSE: \
305  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
306  break; \
307  default: \
308  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
309  break; \
310  } \
311  } \
312  else if ((__HANDLE__)->Instance == UART5) \
313  { \
314  switch(__HAL_RCC_GET_UART5_SOURCE()) \
315  { \
316  case RCC_UART5CLKSOURCE_D2PCLK1: \
317  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
318  break; \
319  case RCC_UART5CLKSOURCE_PLL2: \
320  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
321  break; \
322  case RCC_UART5CLKSOURCE_PLL3: \
323  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
324  break; \
325  case RCC_UART5CLKSOURCE_HSI: \
326  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
327  break; \
328  case RCC_UART5CLKSOURCE_CSI: \
329  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
330  break; \
331  case RCC_UART5CLKSOURCE_LSE: \
332  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
333  break; \
334  default: \
335  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
336  break; \
337  } \
338  } \
339  else if((__HANDLE__)->Instance == USART6) \
340  { \
341  switch(__HAL_RCC_GET_USART6_SOURCE()) \
342  { \
343  case RCC_USART6CLKSOURCE_D2PCLK2: \
344  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
345  break; \
346  case RCC_USART6CLKSOURCE_PLL2: \
347  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
348  break; \
349  case RCC_USART6CLKSOURCE_PLL3: \
350  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
351  break; \
352  case RCC_USART6CLKSOURCE_HSI: \
353  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
354  break; \
355  case RCC_USART6CLKSOURCE_CSI: \
356  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
357  break; \
358  case RCC_USART6CLKSOURCE_LSE: \
359  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
360  break; \
361  default: \
362  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
363  break; \
364  } \
365  } \
366  else if((__HANDLE__)->Instance == UART7) \
367  { \
368  switch(__HAL_RCC_GET_UART7_SOURCE()) \
369  { \
370  case RCC_UART7CLKSOURCE_D2PCLK1: \
371  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
372  break; \
373  case RCC_UART7CLKSOURCE_PLL2: \
374  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
375  break; \
376  case RCC_UART7CLKSOURCE_PLL3: \
377  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
378  break; \
379  case RCC_UART7CLKSOURCE_HSI: \
380  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
381  break; \
382  case RCC_UART7CLKSOURCE_CSI: \
383  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
384  break; \
385  case RCC_UART7CLKSOURCE_LSE: \
386  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
387  break; \
388  default: \
389  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
390  break; \
391  } \
392  } \
393  else if((__HANDLE__)->Instance == UART8) \
394  { \
395  switch(__HAL_RCC_GET_UART8_SOURCE()) \
396  { \
397  case RCC_UART8CLKSOURCE_D2PCLK1: \
398  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
399  break; \
400  case RCC_UART8CLKSOURCE_PLL2: \
401  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
402  break; \
403  case RCC_UART8CLKSOURCE_PLL3: \
404  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
405  break; \
406  case RCC_UART8CLKSOURCE_HSI: \
407  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
408  break; \
409  case RCC_UART8CLKSOURCE_CSI: \
410  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
411  break; \
412  case RCC_UART8CLKSOURCE_LSE: \
413  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
414  break; \
415  default: \
416  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
417  break; \
418  } \
419  } \
420  else if((__HANDLE__)->Instance == UART9) \
421  { \
422  switch(__HAL_RCC_GET_UART9_SOURCE()) \
423  { \
424  case RCC_UART9CLKSOURCE_D2PCLK2: \
425  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
426  break; \
427  case RCC_UART9CLKSOURCE_PLL2: \
428  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
429  break; \
430  case RCC_UART9CLKSOURCE_PLL3: \
431  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
432  break; \
433  case RCC_UART9CLKSOURCE_HSI: \
434  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
435  break; \
436  case RCC_UART9CLKSOURCE_CSI: \
437  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
438  break; \
439  case RCC_UART9CLKSOURCE_LSE: \
440  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
441  break; \
442  default: \
443  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
444  break; \
445  } \
446  } \
447  else if((__HANDLE__)->Instance == USART10) \
448  { \
449  switch(__HAL_RCC_GET_USART10_SOURCE()) \
450  { \
451  case RCC_USART10CLKSOURCE_D2PCLK2: \
452  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
453  break; \
454  case RCC_USART10CLKSOURCE_PLL2: \
455  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
456  break; \
457  case RCC_USART10CLKSOURCE_PLL3: \
458  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
459  break; \
460  case RCC_USART10CLKSOURCE_HSI: \
461  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
462  break; \
463  case RCC_USART10CLKSOURCE_CSI: \
464  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
465  break; \
466  case RCC_USART10CLKSOURCE_LSE: \
467  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
468  break; \
469  default: \
470  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
471  break; \
472  } \
473  } \
474  else if((__HANDLE__)->Instance == LPUART1) \
475  { \
476  switch(__HAL_RCC_GET_LPUART1_SOURCE()) \
477  { \
478  case RCC_LPUART1CLKSOURCE_D3PCLK1: \
479  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D3PCLK1; \
480  break; \
481  case RCC_LPUART1CLKSOURCE_PLL2: \
482  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
483  break; \
484  case RCC_LPUART1CLKSOURCE_PLL3: \
485  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
486  break; \
487  case RCC_LPUART1CLKSOURCE_HSI: \
488  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
489  break; \
490  case RCC_LPUART1CLKSOURCE_CSI: \
491  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
492  break; \
493  case RCC_LPUART1CLKSOURCE_LSE: \
494  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
495  break; \
496  default: \
497  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
498  break; \
499  } \
500  } \
501  else \
502  { \
503  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
504  } \
505  } while(0U)
506 #else
507 #define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
508  do { \
509  if((__HANDLE__)->Instance == USART1) \
510  { \
511  switch(__HAL_RCC_GET_USART1_SOURCE()) \
512  { \
513  case RCC_USART1CLKSOURCE_D2PCLK2: \
514  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
515  break; \
516  case RCC_USART1CLKSOURCE_PLL2: \
517  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
518  break; \
519  case RCC_USART1CLKSOURCE_PLL3: \
520  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
521  break; \
522  case RCC_USART1CLKSOURCE_HSI: \
523  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
524  break; \
525  case RCC_USART1CLKSOURCE_CSI: \
526  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
527  break; \
528  case RCC_USART1CLKSOURCE_LSE: \
529  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
530  break; \
531  default: \
532  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
533  break; \
534  } \
535  } \
536  else if((__HANDLE__)->Instance == USART2) \
537  { \
538  switch(__HAL_RCC_GET_USART2_SOURCE()) \
539  { \
540  case RCC_USART2CLKSOURCE_D2PCLK1: \
541  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
542  break; \
543  case RCC_USART2CLKSOURCE_PLL2: \
544  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
545  break; \
546  case RCC_USART2CLKSOURCE_PLL3: \
547  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
548  break; \
549  case RCC_USART2CLKSOURCE_HSI: \
550  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
551  break; \
552  case RCC_USART2CLKSOURCE_CSI: \
553  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
554  break; \
555  case RCC_USART2CLKSOURCE_LSE: \
556  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
557  break; \
558  default: \
559  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
560  break; \
561  } \
562  } \
563  else if((__HANDLE__)->Instance == USART3) \
564  { \
565  switch(__HAL_RCC_GET_USART3_SOURCE()) \
566  { \
567  case RCC_USART3CLKSOURCE_D2PCLK1: \
568  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
569  break; \
570  case RCC_USART3CLKSOURCE_PLL2: \
571  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
572  break; \
573  case RCC_USART3CLKSOURCE_PLL3: \
574  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
575  break; \
576  case RCC_USART3CLKSOURCE_HSI: \
577  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
578  break; \
579  case RCC_USART3CLKSOURCE_CSI: \
580  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
581  break; \
582  case RCC_USART3CLKSOURCE_LSE: \
583  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
584  break; \
585  default: \
586  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
587  break; \
588  } \
589  } \
590  else if((__HANDLE__)->Instance == UART4) \
591  { \
592  switch(__HAL_RCC_GET_UART4_SOURCE()) \
593  { \
594  case RCC_UART4CLKSOURCE_D2PCLK1: \
595  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
596  break; \
597  case RCC_UART4CLKSOURCE_PLL2: \
598  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
599  break; \
600  case RCC_UART4CLKSOURCE_PLL3: \
601  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
602  break; \
603  case RCC_UART4CLKSOURCE_HSI: \
604  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
605  break; \
606  case RCC_UART4CLKSOURCE_CSI: \
607  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
608  break; \
609  case RCC_UART4CLKSOURCE_LSE: \
610  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
611  break; \
612  default: \
613  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
614  break; \
615  } \
616  } \
617  else if ((__HANDLE__)->Instance == UART5) \
618  { \
619  switch(__HAL_RCC_GET_UART5_SOURCE()) \
620  { \
621  case RCC_UART5CLKSOURCE_D2PCLK1: \
622  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
623  break; \
624  case RCC_UART5CLKSOURCE_PLL2: \
625  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
626  break; \
627  case RCC_UART5CLKSOURCE_PLL3: \
628  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
629  break; \
630  case RCC_UART5CLKSOURCE_HSI: \
631  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
632  break; \
633  case RCC_UART5CLKSOURCE_CSI: \
634  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
635  break; \
636  case RCC_UART5CLKSOURCE_LSE: \
637  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
638  break; \
639  default: \
640  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
641  break; \
642  } \
643  } \
644  else if((__HANDLE__)->Instance == USART6) \
645  { \
646  switch(__HAL_RCC_GET_USART6_SOURCE()) \
647  { \
648  case RCC_USART6CLKSOURCE_D2PCLK2: \
649  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
650  break; \
651  case RCC_USART6CLKSOURCE_PLL2: \
652  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
653  break; \
654  case RCC_USART6CLKSOURCE_PLL3: \
655  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
656  break; \
657  case RCC_USART6CLKSOURCE_HSI: \
658  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
659  break; \
660  case RCC_USART6CLKSOURCE_CSI: \
661  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
662  break; \
663  case RCC_USART6CLKSOURCE_LSE: \
664  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
665  break; \
666  default: \
667  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
668  break; \
669  } \
670  } \
671  else if((__HANDLE__)->Instance == UART7) \
672  { \
673  switch(__HAL_RCC_GET_UART7_SOURCE()) \
674  { \
675  case RCC_UART7CLKSOURCE_D2PCLK1: \
676  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
677  break; \
678  case RCC_UART7CLKSOURCE_PLL2: \
679  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
680  break; \
681  case RCC_UART7CLKSOURCE_PLL3: \
682  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
683  break; \
684  case RCC_UART7CLKSOURCE_HSI: \
685  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
686  break; \
687  case RCC_UART7CLKSOURCE_CSI: \
688  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
689  break; \
690  case RCC_UART7CLKSOURCE_LSE: \
691  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
692  break; \
693  default: \
694  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
695  break; \
696  } \
697  } \
698  else if((__HANDLE__)->Instance == UART8) \
699  { \
700  switch(__HAL_RCC_GET_UART8_SOURCE()) \
701  { \
702  case RCC_UART8CLKSOURCE_D2PCLK1: \
703  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
704  break; \
705  case RCC_UART8CLKSOURCE_PLL2: \
706  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
707  break; \
708  case RCC_UART8CLKSOURCE_PLL3: \
709  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
710  break; \
711  case RCC_UART8CLKSOURCE_HSI: \
712  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
713  break; \
714  case RCC_UART8CLKSOURCE_CSI: \
715  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
716  break; \
717  case RCC_UART8CLKSOURCE_LSE: \
718  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
719  break; \
720  default: \
721  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
722  break; \
723  } \
724  } \
725  else if((__HANDLE__)->Instance == LPUART1) \
726  { \
727  switch(__HAL_RCC_GET_LPUART1_SOURCE()) \
728  { \
729  case RCC_LPUART1CLKSOURCE_D3PCLK1: \
730  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D3PCLK1; \
731  break; \
732  case RCC_LPUART1CLKSOURCE_PLL2: \
733  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
734  break; \
735  case RCC_LPUART1CLKSOURCE_PLL3: \
736  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
737  break; \
738  case RCC_LPUART1CLKSOURCE_HSI: \
739  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
740  break; \
741  case RCC_LPUART1CLKSOURCE_CSI: \
742  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
743  break; \
744  case RCC_LPUART1CLKSOURCE_LSE: \
745  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
746  break; \
747  default: \
748  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
749  break; \
750  } \
751  } \
752  else \
753  { \
754  (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
755  } \
756  } while(0U)
757 #endif /* UART9 && USART10 */
758 
768 #define UART_MASK_COMPUTATION(__HANDLE__) \
769  do { \
770  if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \
771  { \
772  if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
773  { \
774  (__HANDLE__)->Mask = 0x01FFU ; \
775  } \
776  else \
777  { \
778  (__HANDLE__)->Mask = 0x00FFU ; \
779  } \
780  } \
781  else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \
782  { \
783  if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
784  { \
785  (__HANDLE__)->Mask = 0x00FFU ; \
786  } \
787  else \
788  { \
789  (__HANDLE__)->Mask = 0x007FU ; \
790  } \
791  } \
792  else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_7B) \
793  { \
794  if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
795  { \
796  (__HANDLE__)->Mask = 0x007FU ; \
797  } \
798  else \
799  { \
800  (__HANDLE__)->Mask = 0x003FU ; \
801  } \
802  } \
803  else \
804  { \
805  (__HANDLE__)->Mask = 0x0000U; \
806  } \
807  } while(0U)
808 
814 #define IS_UART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == UART_WORDLENGTH_7B) || \
815  ((__LENGTH__) == UART_WORDLENGTH_8B) || \
816  ((__LENGTH__) == UART_WORDLENGTH_9B))
817 
823 #define IS_UART_ADDRESSLENGTH_DETECT(__ADDRESS__) (((__ADDRESS__) == UART_ADDRESS_DETECT_4B) || \
824  ((__ADDRESS__) == UART_ADDRESS_DETECT_7B))
825 
831 #define IS_UART_TXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_8) || \
832  ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_4) || \
833  ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_2) || \
834  ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_3_4) || \
835  ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_7_8) || \
836  ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_8_8))
837 
843 #define IS_UART_RXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_8) || \
844  ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_4) || \
845  ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_2) || \
846  ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_3_4) || \
847  ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_7_8) || \
848  ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_8_8))
849 
854 /* Private functions ---------------------------------------------------------*/
855 
864 #ifdef __cplusplus
865 }
866 #endif
867 
868 #endif /* STM32H7xx_HAL_UART_EX_H */
869 
870 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_MultiProcessorEx_AddressLength_Set
HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength)
HAL_UARTEx_ReceiveToIdle_IT
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:40
HAL_UARTEx_StopModeWakeUpSourceConfig
HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection)
HAL_UARTEx_DisableFifoMode
HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart)
huart
UART_HandleTypeDef huart
Definition: pv_stm32f469.c:31
stm32h7xx_hal_def.h
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_UARTEx_DisableStopMode
HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart)
__UART_HandleTypeDef
UART handle Structure definition.
Definition: stm32f4xx_hal_uart.h:141
HAL_UARTEx_EnableFifoMode
HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart)
HAL_UARTEx_EnableStopMode
HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart)
UART_WakeUpTypeDef::Address
uint8_t Address
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h:57
UART_WakeUpTypeDef::AddressLength
uint16_t AddressLength
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h:54
HAL_UARTEx_TxFifoEmptyCallback
void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart)
UART_WakeUpTypeDef
UART wake up from stop mode parameters.
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h:47
UART_WakeUpTypeDef::WakeUpEvent
uint32_t WakeUpEvent
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h:49
HAL_UARTEx_ReceiveToIdle_DMA
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
HAL_UARTEx_SetTxFifoThreshold
HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold)
HAL_RS485Ex_Init
HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, uint32_t DeassertionTime)
HAL_UARTEx_SetRxFifoThreshold
HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold)
HAL_UARTEx_ReceiveToIdle
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen, uint32_t Timeout)
HAL_UARTEx_WakeupCallback
void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
HAL_UARTEx_RxFifoFullCallback
void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart)


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:55