G32R430 Device Driver Layer v1.0.4
G32R4xx Device Driver Layer API Reference
g32r4xx_ddl_usart.h
Go to the documentation of this file.
1
42
43/* Define to prevent recursive inclusion -------------------------------------*/
44#ifndef G32R4xx_DDL_USART_H
45#define G32R4xx_DDL_USART_H
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51/* Includes ------------------------------------------------------------------*/
52#include "g32r4xx.h"
53
57
58#if defined (USART1) || defined (USART2)
59
63
64/* Private types -------------------------------------------------------------*/
65/* Private variables ---------------------------------------------------------*/
66
67/* Private constants ---------------------------------------------------------*/
71
72/* Defines used for the bit position in the register and perform offsets*/
73#define USART_POSITION_GTPR_GT USART_GTPSC_GRDT_Pos
77
78/* Private macros ------------------------------------------------------------*/
79#if defined(USE_FULL_DDL_DRIVER)
86#endif /*USE_FULL_DDL_DRIVER*/
87
88/* Exported types ------------------------------------------------------------*/
89#if defined(USE_FULL_DDL_DRIVER)
93
97typedef struct
98{
99 uint32_t BaudRate;
102
103 uint32_t DataWidth;
107
108 uint32_t StopBits;
112
113 uint32_t Parity;
117
122
127
128 uint32_t OverSampling;
132
134
138typedef struct
139{
140 uint32_t ClockOutput;
146
147 uint32_t ClockPolarity;
152
153 uint32_t ClockPhase;
158
165
167
171#endif /* USE_FULL_DDL_DRIVER */
172
173/* Exported constants --------------------------------------------------------*/
177
182#define DDL_USART_STS_PEFLG USART_STS_PEFLG
183#define DDL_USART_STS_FEFLG USART_STS_FEFLG
184#define DDL_USART_STS_NEFLG USART_STS_NEFLG
185#define DDL_USART_STS_OVREFLG USART_STS_OVREFLG
186#define DDL_USART_STS_IDLEFLG USART_STS_IDLEFLG
187#define DDL_USART_STS_RXBNEFLG USART_STS_RXBNEFLG
188#define DDL_USART_STS_TXCFLG USART_STS_TXCFLG
189#define DDL_USART_STS_TXBEFLG USART_STS_TXBEFLG
190#define DDL_USART_STS_LBDFLG USART_STS_LBDFLG
191#define DDL_USART_STS_CTSFLG USART_STS_CTSFLG
195
200#define DDL_USART_CTRL1_IDLEIEN USART_CTRL1_IDLEIEN
201#define DDL_USART_CTRL1_RXBNEIEN USART_CTRL1_RXBNEIEN
202#define DDL_USART_CTRL1_TXCIEN USART_CTRL1_TXCIEN
203#define DDL_USART_CTRL1_TXBEIEN USART_CTRL1_TXBEIEN
204#define DDL_USART_CTRL1_PEIEN USART_CTRL1_PEIEN
205#define DDL_USART_CTRL2_LBDIEN USART_CTRL2_LBDIEN
206#define DDL_USART_CTRL3_ERRIEN USART_CTRL3_ERRIEN
207#define DDL_USART_CTRL3_CTSIEN USART_CTRL3_CTSIEN
211
215#define DDL_USART_DIRECTION_NONE 0x00000000U
216#define DDL_USART_DIRECTION_RX USART_CTRL1_RXEN
217#define DDL_USART_DIRECTION_TX USART_CTRL1_TXEN
218#define DDL_USART_DIRECTION_TX_RX (USART_CTRL1_TXEN |USART_CTRL1_RXEN)
222
226#define DDL_USART_PARITY_NONE 0x00000000U
227#define DDL_USART_PARITY_EVEN USART_CTRL1_PCEN
228#define DDL_USART_PARITY_ODD (USART_CTRL1_PCEN | USART_CTRL1_PCFG)
232
236#define DDL_USART_WAKEUP_IDLELINE 0x00000000U
237#define DDL_USART_WAKEUP_ADDRESSMARK USART_CTRL1_WUPMCFG
241
245#define DDL_USART_DATAWIDTH_8B 0x00000000U
246#define DDL_USART_DATAWIDTH_9B USART_CTRL1_DBLCFG
250
254#define DDL_USART_OVERSAMPLING_16 0x00000000U
255#define DDL_USART_OVERSAMPLING_8 USART_CTRL1_OSMCFG
259
260#if defined(USE_FULL_DDL_DRIVER)
264
265#define DDL_USART_CLOCK_DISABLE 0x00000000U
266#define DDL_USART_CLOCK_ENABLE USART_CTRL2_CLKEN
270#endif /*USE_FULL_DDL_DRIVER*/
271
275#define DDL_USART_LASTCLKPULSE_NO_OUTPUT 0x00000000U
276#define DDL_USART_LASTCLKPULSE_OUTPUT USART_CTRL2_LBCPOEN
280
284#define DDL_USART_PHASE_1EDGE 0x00000000U
285#define DDL_USART_PHASE_2EDGE USART_CTRL2_CPHA
289
293#define DDL_USART_POLARITY_LOW 0x00000000U
294#define DDL_USART_POLARITY_HIGH USART_CTRL2_CPOL
298
302#define DDL_USART_STOPBITS_0_5 USART_CTRL2_STOPCFG_0
303#define DDL_USART_STOPBITS_1 0x00000000U
304#define DDL_USART_STOPBITS_1_5 USART_CTRL2_STOPCFG
305#define DDL_USART_STOPBITS_2 USART_CTRL2_STOPCFG_1
309
313#define DDL_USART_HWCONTROL_NONE 0x00000000U
314#define DDL_USART_HWCONTROL_RTS USART_CTRL3_RTSEN
315#define DDL_USART_HWCONTROL_CTS USART_CTRL3_CTSEN
316#define DDL_USART_HWCONTROL_RTS_CTS (USART_CTRL3_RTSEN | USART_CTRL3_CTSEN)
320
324#define DDL_USART_IRDA_POWER_NORMAL 0x00000000U
325#define DDL_USART_IRDA_POWER_LOW USART_CTRL3_IRLPEN
329
333#define DDL_USART_LINBREAK_DETECT_10B 0x00000000U
334#define DDL_USART_LINBREAK_DETECT_11B USART_CTRL2_LBDLCFG
338
342#define DDL_USART_SAMPLING_SINGLE USART_CTRL3_SAMCFG
343#define DDL_USART_SAMPLING_TRIPLE 0x00000000U
347
351
352/* Exported macro ------------------------------------------------------------*/
356
360
368#define DDL_USART_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
369
376#define DDL_USART_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
380
384
392#define __DDL_USART_DIV_SAMPLING8_100(__PERIPHCLK__, __BAUDRATE__) ((uint32_t)((((uint64_t)(__PERIPHCLK__))*25)/(2*((uint64_t)(__BAUDRATE__)))))
393#define __DDL_USART_DIVMANT_SAMPLING8(__PERIPHCLK__, __BAUDRATE__) (__DDL_USART_DIV_SAMPLING8_100((__PERIPHCLK__), (__BAUDRATE__))/100)
394#define __DDL_USART_DIVFRAQ_SAMPLING8(__PERIPHCLK__, __BAUDRATE__) ((((__DDL_USART_DIV_SAMPLING8_100((__PERIPHCLK__), (__BAUDRATE__)) - (__DDL_USART_DIVMANT_SAMPLING8((__PERIPHCLK__), (__BAUDRATE__)) * 100)) * 8)\
395 + 50) / 100)
396/* UART BRR = mantissa + overflow + fraction
397 = (UART DIVMANT << 4) + ((UART DIVFRAQ & 0xF8) << 1) + (UART DIVFRAQ & 0x07) */
398#define __DDL_USART_DIV_SAMPLING8(__PERIPHCLK__, __BAUDRATE__) (((__DDL_USART_DIVMANT_SAMPLING8((__PERIPHCLK__), (__BAUDRATE__)) << 4) + \
399 ((__DDL_USART_DIVFRAQ_SAMPLING8((__PERIPHCLK__), (__BAUDRATE__)) & 0xF8) << 1)) + \
400 (__DDL_USART_DIVFRAQ_SAMPLING8((__PERIPHCLK__), (__BAUDRATE__)) & 0x07))
401
409#define __DDL_USART_DIV_SAMPLING16_100(__PERIPHCLK__, __BAUDRATE__) ((uint32_t)((((uint64_t)(__PERIPHCLK__))*25)/(4*((uint64_t)(__BAUDRATE__)))))
410#define __DDL_USART_DIVMANT_SAMPLING16(__PERIPHCLK__, __BAUDRATE__) (__DDL_USART_DIV_SAMPLING16_100((__PERIPHCLK__), (__BAUDRATE__))/100)
411#define __DDL_USART_DIVFRAQ_SAMPLING16(__PERIPHCLK__, __BAUDRATE__) ((((__DDL_USART_DIV_SAMPLING16_100((__PERIPHCLK__), (__BAUDRATE__)) - (__DDL_USART_DIVMANT_SAMPLING16((__PERIPHCLK__), (__BAUDRATE__)) * 100)) * 16)\
412 + 50) / 100)
413/* USART BRR = mantissa + overflow + fraction
414 = (USART DIVMANT << 4) + (USART DIVFRAQ & 0xF0) + (USART DIVFRAQ & 0x0F) */
415#define __DDL_USART_DIV_SAMPLING16(__PERIPHCLK__, __BAUDRATE__) (((__DDL_USART_DIVMANT_SAMPLING16((__PERIPHCLK__), (__BAUDRATE__)) << 4) + \
416 (__DDL_USART_DIVFRAQ_SAMPLING16((__PERIPHCLK__), (__BAUDRATE__)) & 0xF0)) + \
417 (__DDL_USART_DIVFRAQ_SAMPLING16((__PERIPHCLK__), (__BAUDRATE__)) & 0x0F))
418
422
426
427/* Exported functions --------------------------------------------------------*/
428
432
436
442__STATIC_INLINE void DDL_USART_Enable(USART_TypeDef *USARTx)
443{
444 SET_BIT(USARTx->CTRL1, USART_CTRL1_UEN);
445}
446
455__STATIC_INLINE void DDL_USART_Disable(USART_TypeDef *USARTx)
456{
457 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_UEN);
458}
459
465__STATIC_INLINE uint32_t DDL_USART_IsEnabled(USART_TypeDef *USARTx)
466{
467 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_UEN) == (USART_CTRL1_UEN));
468}
469
475__STATIC_INLINE void DDL_USART_EnableDirectionRx(USART_TypeDef *USARTx)
476{
477 SET_BIT(USARTx->CTRL1, USART_CTRL1_RXEN);
478}
479
485__STATIC_INLINE void DDL_USART_DisableDirectionRx(USART_TypeDef *USARTx)
486{
487 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_RXEN);
488}
489
495__STATIC_INLINE void DDL_USART_EnableDirectionTx(USART_TypeDef *USARTx)
496{
497 SET_BIT(USARTx->CTRL1, USART_CTRL1_TXEN);
498}
499
505__STATIC_INLINE void DDL_USART_DisableDirectionTx(USART_TypeDef *USARTx)
506{
507 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_TXEN);
508}
509
521__STATIC_INLINE void DDL_USART_SetTransferDirection(USART_TypeDef *USARTx, uint32_t TransferDirection)
522{
523 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_RXEN | USART_CTRL1_TXEN, TransferDirection);
524}
525
535__STATIC_INLINE uint32_t DDL_USART_GetTransferDirection(USART_TypeDef *USARTx)
536{
537 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_RXEN | USART_CTRL1_TXEN));
538}
539
552__STATIC_INLINE void DDL_USART_SetParity(USART_TypeDef *USARTx, uint32_t Parity)
553{
554 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_PCFG | USART_CTRL1_PCEN, Parity);
555}
556
565__STATIC_INLINE uint32_t DDL_USART_GetParity(USART_TypeDef *USARTx)
566{
567 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_PCFG | USART_CTRL1_PCEN));
568}
569
578__STATIC_INLINE void DDL_USART_SetWakeUpMethod(USART_TypeDef *USARTx, uint32_t Method)
579{
580 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_WUPMCFG, Method);
581}
582
590__STATIC_INLINE uint32_t DDL_USART_GetWakeUpMethod(USART_TypeDef *USARTx)
591{
592 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_WUPMCFG));
593}
594
603__STATIC_INLINE void DDL_USART_SetDataWidth(USART_TypeDef *USARTx, uint32_t DataWidth)
604{
605 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_DBLCFG, DataWidth);
606}
607
615__STATIC_INLINE uint32_t DDL_USART_GetDataWidth(USART_TypeDef *USARTx)
616{
617 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_DBLCFG));
618}
619
628__STATIC_INLINE void DDL_USART_SetOverSampling(USART_TypeDef *USARTx, uint32_t OverSampling)
629{
630 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_OSMCFG, OverSampling);
631}
632
640__STATIC_INLINE uint32_t DDL_USART_GetOverSampling(USART_TypeDef *USARTx)
641{
642 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_OSMCFG));
643}
644
655__STATIC_INLINE void DDL_USART_SetLastClkPulseOutput(USART_TypeDef *USARTx, uint32_t LastBitClockPulse)
656{
657 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_LBCPOEN, LastBitClockPulse);
658}
659
670__STATIC_INLINE uint32_t DDL_USART_GetLastClkPulseOutput(USART_TypeDef *USARTx)
671{
672 return (uint32_t)(READ_BIT(USARTx->CTRL2, USART_CTRL2_LBCPOEN));
673}
674
685__STATIC_INLINE void DDL_USART_SetClockPhase(USART_TypeDef *USARTx, uint32_t ClockPhase)
686{
687 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_CPHA, ClockPhase);
688}
689
699__STATIC_INLINE uint32_t DDL_USART_GetClockPhase(USART_TypeDef *USARTx)
700{
701 return (uint32_t)(READ_BIT(USARTx->CTRL2, USART_CTRL2_CPHA));
702}
703
714__STATIC_INLINE void DDL_USART_SetClockPolarity(USART_TypeDef *USARTx, uint32_t ClockPolarity)
715{
716 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_CPOL, ClockPolarity);
717}
718
728__STATIC_INLINE uint32_t DDL_USART_GetClockPolarity(USART_TypeDef *USARTx)
729{
730 return (uint32_t)(READ_BIT(USARTx->CTRL2, USART_CTRL2_CPOL));
731}
732
753__STATIC_INLINE void DDL_USART_ConfigClock(USART_TypeDef *USARTx, uint32_t Phase, uint32_t Polarity, uint32_t LBCPOutput)
754{
755 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_CPHA | USART_CTRL2_CPOL | USART_CTRL2_LBCPOEN, Phase | Polarity | LBCPOutput);
756}
757
765__STATIC_INLINE void DDL_USART_EnableSCLKOutput(USART_TypeDef *USARTx)
766{
767 SET_BIT(USARTx->CTRL2, USART_CTRL2_CLKEN);
768}
769
777__STATIC_INLINE void DDL_USART_DisableSCLKOutput(USART_TypeDef *USARTx)
778{
779 CLEAR_BIT(USARTx->CTRL2, USART_CTRL2_CLKEN);
780}
781
789__STATIC_INLINE uint32_t DDL_USART_IsEnabledSCLKOutput(USART_TypeDef *USARTx)
790{
791 return (READ_BIT(USARTx->CTRL2, USART_CTRL2_CLKEN) == (USART_CTRL2_CLKEN));
792}
793
804__STATIC_INLINE void DDL_USART_SetStopBitsLength(USART_TypeDef *USARTx, uint32_t StopBits)
805{
806 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_STOPCFG, StopBits);
807}
808
818__STATIC_INLINE uint32_t DDL_USART_GetStopBitsLength(USART_TypeDef *USARTx)
819{
820 return (uint32_t)(READ_BIT(USARTx->CTRL2, USART_CTRL2_STOPCFG));
821}
822
844__STATIC_INLINE void DDL_USART_ConfigCharacter(USART_TypeDef *USARTx, uint32_t DataWidth, uint32_t Parity,
845 uint32_t StopBits)
846{
847 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_PCFG | USART_CTRL1_PCEN | USART_CTRL1_DBLCFG, Parity | DataWidth);
848 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_STOPCFG, StopBits);
849}
850
859__STATIC_INLINE void DDL_USART_SetNodeAddress(USART_TypeDef *USARTx, uint32_t NodeAddress)
860{
861 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_ADDR, (NodeAddress & USART_CTRL2_ADDR));
862}
863
870__STATIC_INLINE uint32_t DDL_USART_GetNodeAddress(USART_TypeDef *USARTx)
871{
872 return (uint32_t)(READ_BIT(USARTx->CTRL2, USART_CTRL2_ADDR));
873}
874
882__STATIC_INLINE void DDL_USART_EnableRTSHWFlowCtrl(USART_TypeDef *USARTx)
883{
884 SET_BIT(USARTx->CTRL3, USART_CTRL3_RTSEN);
885}
886
894__STATIC_INLINE void DDL_USART_DisableRTSHWFlowCtrl(USART_TypeDef *USARTx)
895{
896 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_RTSEN);
897}
898
906__STATIC_INLINE void DDL_USART_EnableCTSHWFlowCtrl(USART_TypeDef *USARTx)
907{
908 SET_BIT(USARTx->CTRL3, USART_CTRL3_CTSEN);
909}
910
918__STATIC_INLINE void DDL_USART_DisableCTSHWFlowCtrl(USART_TypeDef *USARTx)
919{
920 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_CTSEN);
921}
922
935__STATIC_INLINE void DDL_USART_SetHWFlowCtrl(USART_TypeDef *USARTx, uint32_t HardwareFlowControl)
936{
937 MODIFY_REG(USARTx->CTRL3, USART_CTRL3_RTSEN | USART_CTRL3_CTSEN, HardwareFlowControl);
938}
939
951__STATIC_INLINE uint32_t DDL_USART_GetHWFlowCtrl(USART_TypeDef *USARTx)
952{
953 return (uint32_t)(READ_BIT(USARTx->CTRL3, USART_CTRL3_RTSEN | USART_CTRL3_CTSEN));
954}
955
964__STATIC_INLINE void DDL_USART_SetDEDeassertionTime(USART_TypeDef *USARTx, uint32_t Time)
965{
966 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_DEDT, Time << USART_CTRL1_DEDT_Pos);
967}
968
976__STATIC_INLINE uint32_t DDL_USART_GetDEDeassertionTime(USART_TypeDef *USARTx)
977{
978 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_DEDT) >> USART_CTRL1_DEDT_Pos);
979}
980
989__STATIC_INLINE void DDL_USART_SetDEAssertionTime(USART_TypeDef *USARTx, uint32_t Time)
990{
991 MODIFY_REG(USARTx->CTRL1, USART_CTRL1_DEAT, Time << USART_CTRL1_DEAT_Pos);
992}
993
1001__STATIC_INLINE uint32_t DDL_USART_GetDEAssertionTime(USART_TypeDef *USARTx)
1002{
1003 return (uint32_t)(READ_BIT(USARTx->CTRL1, USART_CTRL1_DEAT) >> USART_CTRL1_DEAT_Pos);
1004}
1005
1013__STATIC_INLINE void DDL_USART_EnableDEMode(USART_TypeDef *USARTx)
1014{
1015 SET_BIT(USARTx->CTRL3, USART_CTRL3_DEM);
1016}
1017
1025__STATIC_INLINE void DDL_USART_DisableDEMode(USART_TypeDef *USARTx)
1026{
1027 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_DEM);
1028}
1029
1037__STATIC_INLINE uint32_t DDL_USART_IsEnabledDEMode(USART_TypeDef *USARTx)
1038{
1039 return ((READ_BIT(USARTx->CTRL3, USART_CTRL3_DEM) == (USART_CTRL3_DEM)) ? 1UL : 0UL);
1040}
1041
1056__STATIC_INLINE void DDL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling,
1057 uint32_t BaudRate)
1058{
1059 uint32_t temp, intDiv, fractionalDiv;
1060 if (OverSampling == DDL_USART_OVERSAMPLING_8)
1061 {
1062 intDiv = ((25 * PeriphClk) / (2 * BaudRate));
1063 }
1064 else
1065 {
1066 intDiv = ((25 * PeriphClk) / (4 * BaudRate));
1067 }
1068
1069 temp = (intDiv / 100) << 4;
1070 fractionalDiv = intDiv - (100 * (temp >> 4));
1071
1072 if (OverSampling == DDL_USART_OVERSAMPLING_8)
1073 {
1074 temp |= ((((fractionalDiv * 8) + 50) / 100)) & ((uint8_t)0x07);
1075 }
1076 else
1077 {
1078 temp |= ((((fractionalDiv * 16) + 50) / 100)) & ((uint8_t)0x0F);
1079 }
1080
1081 USARTx->BR = temp;
1082}
1083
1095__STATIC_INLINE uint32_t DDL_USART_GetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling)
1096{
1097 uint32_t usartdiv = 0x0U;
1098 uint32_t brrresult = 0x0U;
1099
1100 usartdiv = USARTx->BR;
1101
1102 if (OverSampling == DDL_USART_OVERSAMPLING_8)
1103 {
1104 if ((usartdiv & 0xFFF7U) != 0U)
1105 {
1106 usartdiv = (uint16_t)((usartdiv & 0xFFF0U) | ((usartdiv & 0x0007U) << 1U)) ;
1107 brrresult = (PeriphClk * 2U) / usartdiv;
1108 }
1109 }
1110 else
1111 {
1112 if ((usartdiv & 0xFFFFU) != 0U)
1113 {
1114 brrresult = PeriphClk / usartdiv;
1115 }
1116 }
1117 return (brrresult);
1118}
1119
1128__STATIC_INLINE void DDL_USART_SetSampleMethod(USART_TypeDef *USARTx, uint32_t Sample)
1129{
1130 MODIFY_REG(USARTx->CTRL3, USART_CTRL3_SAMCFG, Sample);
1131}
1132
1136
1140
1148__STATIC_INLINE void DDL_USART_EnableIrda(USART_TypeDef *USARTx)
1149{
1150 SET_BIT(USARTx->CTRL3, USART_CTRL3_IREN);
1151}
1152
1160__STATIC_INLINE void DDL_USART_DisableIrda(USART_TypeDef *USARTx)
1161{
1162 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_IREN);
1163}
1164
1172__STATIC_INLINE uint32_t DDL_USART_IsEnabledIrda(USART_TypeDef *USARTx)
1173{
1174 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_IREN) == (USART_CTRL3_IREN));
1175}
1176
1187__STATIC_INLINE void DDL_USART_SetIrdaPowerMode(USART_TypeDef *USARTx, uint32_t PowerMode)
1188{
1189 MODIFY_REG(USARTx->CTRL3, USART_CTRL3_IRLPEN, PowerMode);
1190}
1191
1201__STATIC_INLINE uint32_t DDL_USART_GetIrdaPowerMode(USART_TypeDef *USARTx)
1202{
1203 return (uint32_t)(READ_BIT(USARTx->CTRL3, USART_CTRL3_IRLPEN));
1204}
1205
1215__STATIC_INLINE void DDL_USART_SetIrdaPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
1216{
1217 MODIFY_REG(USARTx->GTPSC, USART_GTPSC_PSC, PrescalerValue);
1218}
1219
1228__STATIC_INLINE uint32_t DDL_USART_GetIrdaPrescaler(USART_TypeDef *USARTx)
1229{
1230 return (uint32_t)(READ_BIT(USARTx->GTPSC, USART_GTPSC_PSC));
1231}
1232
1236
1240
1248__STATIC_INLINE void DDL_USART_EnableSmartcardNACK(USART_TypeDef *USARTx)
1249{
1250 SET_BIT(USARTx->CTRL3, USART_CTRL3_SCNACKEN);
1251}
1252
1260__STATIC_INLINE void DDL_USART_DisableSmartcardNACK(USART_TypeDef *USARTx)
1261{
1262 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_SCNACKEN);
1263}
1264
1272__STATIC_INLINE uint32_t DDL_USART_IsEnabledSmartcardNACK(USART_TypeDef *USARTx)
1273{
1274 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_SCNACKEN) == (USART_CTRL3_SCNACKEN));
1275}
1276
1284__STATIC_INLINE void DDL_USART_EnableSmartcard(USART_TypeDef *USARTx)
1285{
1286 SET_BIT(USARTx->CTRL3, USART_CTRL3_SCEN);
1287}
1288
1296__STATIC_INLINE void DDL_USART_DisableSmartcard(USART_TypeDef *USARTx)
1297{
1298 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_SCEN);
1299}
1300
1308__STATIC_INLINE uint32_t DDL_USART_IsEnabledSmartcard(USART_TypeDef *USARTx)
1309{
1310 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_SCEN) == (USART_CTRL3_SCEN));
1311}
1312
1322__STATIC_INLINE void DDL_USART_SetSmartcardPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
1323{
1324 MODIFY_REG(USARTx->GTPSC, USART_GTPSC_PSC, PrescalerValue);
1325}
1326
1335__STATIC_INLINE uint32_t DDL_USART_GetSmartcardPrescaler(USART_TypeDef *USARTx)
1336{
1337 return (uint32_t)(READ_BIT(USARTx->GTPSC, USART_GTPSC_PSC));
1338}
1339
1349__STATIC_INLINE void DDL_USART_SetSmartcardGuardTime(USART_TypeDef *USARTx, uint32_t GuardTime)
1350{
1351 MODIFY_REG(USARTx->GTPSC, USART_GTPSC_GRDT, GuardTime << USART_POSITION_GTPR_GT);
1352}
1353
1362__STATIC_INLINE uint32_t DDL_USART_GetSmartcardGuardTime(USART_TypeDef *USARTx)
1363{
1364 return (uint32_t)(READ_BIT(USARTx->GTPSC, USART_GTPSC_GRDT) >> USART_POSITION_GTPR_GT);
1365}
1366
1370
1374
1382__STATIC_INLINE void DDL_USART_EnableHalfDuplex(USART_TypeDef *USARTx)
1383{
1384 SET_BIT(USARTx->CTRL3, USART_CTRL3_HDEN);
1385}
1386
1394__STATIC_INLINE void DDL_USART_DisableHalfDuplex(USART_TypeDef *USARTx)
1395{
1396 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_HDEN);
1397}
1398
1406__STATIC_INLINE uint32_t DDL_USART_IsEnabledHalfDuplex(USART_TypeDef *USARTx)
1407{
1408 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_HDEN) == (USART_CTRL3_HDEN));
1409}
1410
1414
1418
1429__STATIC_INLINE void DDL_USART_SetLINBrkDetectionLen(USART_TypeDef *USARTx, uint32_t LINBDLength)
1430{
1431 MODIFY_REG(USARTx->CTRL2, USART_CTRL2_LBDLCFG, LINBDLength);
1432}
1433
1443__STATIC_INLINE uint32_t DDL_USART_GetLINBrkDetectionLen(USART_TypeDef *USARTx)
1444{
1445 return (uint32_t)(READ_BIT(USARTx->CTRL2, USART_CTRL2_LBDLCFG));
1446}
1447
1455__STATIC_INLINE void DDL_USART_EnableLIN(USART_TypeDef *USARTx)
1456{
1457 SET_BIT(USARTx->CTRL2, USART_CTRL2_LINMEN);
1458}
1459
1467__STATIC_INLINE void DDL_USART_DisableLIN(USART_TypeDef *USARTx)
1468{
1469 CLEAR_BIT(USARTx->CTRL2, USART_CTRL2_LINMEN);
1470}
1471
1479__STATIC_INLINE uint32_t DDL_USART_IsEnabledLIN(USART_TypeDef *USARTx)
1480{
1481 return (READ_BIT(USARTx->CTRL2, USART_CTRL2_LINMEN) == (USART_CTRL2_LINMEN));
1482}
1483
1487
1491
1512__STATIC_INLINE void DDL_USART_ConfigAsyncMode(USART_TypeDef *USARTx)
1513{
1514 /* In Asynchronous mode, the following bits must be kept cleared:
1515 - LINEN, CLKEN bits in the USART_CTRL2 register,
1516 - SCEN, IREN and HDSEL bits in the USART_CTRL3 register.*/
1517 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_LINMEN | USART_CTRL2_CLKEN));
1518 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_SCEN | USART_CTRL3_IREN | USART_CTRL3_HDEN));
1519}
1520
1543__STATIC_INLINE void DDL_USART_ConfigSyncMode(USART_TypeDef *USARTx)
1544{
1545 /* In Synchronous mode, the following bits must be kept cleared:
1546 - LINEN bit in the USART_CTRL2 register,
1547 - SCEN, IREN and HDSEL bits in the USART_CTRL3 register.*/
1548 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_LINMEN));
1549 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_SCEN | USART_CTRL3_IREN | USART_CTRL3_HDEN));
1550 /* set the UART/USART in Synchronous mode */
1551 SET_BIT(USARTx->CTRL2, USART_CTRL2_CLKEN);
1552}
1553
1577__STATIC_INLINE void DDL_USART_ConfigLINMode(USART_TypeDef *USARTx)
1578{
1579 /* In LIN mode, the following bits must be kept cleared:
1580 - STOP and CLKEN bits in the USART_CTRL2 register,
1581 - IREN, SCEN and HDSEL bits in the USART_CTRL3 register.*/
1582 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_CLKEN | USART_CTRL2_STOPCFG));
1583 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_IREN | USART_CTRL3_SCEN | USART_CTRL3_HDEN));
1584 /* Set the UART/USART in LIN mode */
1585 SET_BIT(USARTx->CTRL2, USART_CTRL2_LINMEN);
1586}
1587
1610__STATIC_INLINE void DDL_USART_ConfigHalfDuplexMode(USART_TypeDef *USARTx)
1611{
1612 /* In Half Duplex mode, the following bits must be kept cleared:
1613 - LINEN and CLKEN bits in the USART_CTRL2 register,
1614 - SCEN and IREN bits in the USART_CTRL3 register.*/
1615 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_LINMEN | USART_CTRL2_CLKEN));
1616 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_SCEN | USART_CTRL3_IREN));
1617 /* set the UART/USART in Half Duplex mode */
1618 SET_BIT(USARTx->CTRL3, USART_CTRL3_HDEN);
1619}
1620
1645__STATIC_INLINE void DDL_USART_ConfigSmartcardMode(USART_TypeDef *USARTx)
1646{
1647 /* In Smartcard mode, the following bits must be kept cleared:
1648 - LINEN bit in the USART_CTRL2 register,
1649 - IREN and HDSEL bits in the USART_CTRL3 register.*/
1650 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_LINMEN));
1651 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_IREN | USART_CTRL3_HDEN));
1652 /* Configure Stop bits to 1.5 bits */
1653 /* Synchronous mode is activated by default */
1654 SET_BIT(USARTx->CTRL2, (USART_CTRL2_STOPCFG | USART_CTRL2_CLKEN));
1655 /* set the UART/USART in Smartcard mode */
1656 SET_BIT(USARTx->CTRL3, USART_CTRL3_SCEN);
1657}
1658
1682__STATIC_INLINE void DDL_USART_ConfigIrdaMode(USART_TypeDef *USARTx)
1683{
1684 /* In IRDA mode, the following bits must be kept cleared:
1685 - LINEN, STOP and CLKEN bits in the USART_CTRL2 register,
1686 - SCEN and HDSEL bits in the USART_CTRL3 register.*/
1687 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_LINMEN | USART_CTRL2_CLKEN | USART_CTRL2_STOPCFG));
1688 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_SCEN | USART_CTRL3_HDEN));
1689 /* set the UART/USART in IRDA mode */
1690 SET_BIT(USARTx->CTRL3, USART_CTRL3_IREN);
1691}
1692
1715__STATIC_INLINE void DDL_USART_ConfigMultiProcessMode(USART_TypeDef *USARTx)
1716{
1717 /* In Multi Processor mode, the following bits must be kept cleared:
1718 - LINEN and CLKEN bits in the USART_CTRL2 register,
1719 - IREN, SCEN and HDSEL bits in the USART_CTRL3 register.*/
1720 CLEAR_BIT(USARTx->CTRL2, (USART_CTRL2_LINMEN | USART_CTRL2_CLKEN));
1721 CLEAR_BIT(USARTx->CTRL3, (USART_CTRL3_SCEN | USART_CTRL3_HDEN | USART_CTRL3_IREN));
1722}
1723
1727
1731
1737__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_PE(USART_TypeDef *USARTx)
1738{
1739 return (READ_BIT(USARTx->STS, USART_STS_PEFLG) == (USART_STS_PEFLG));
1740}
1741
1751__STATIC_INLINE void DDL_USART_ClearFlag_PE(USART_TypeDef *USARTx)
1752{
1753 __IO uint32_t tmpreg;
1754 tmpreg = USARTx->STS;
1755 (void) tmpreg;
1756 tmpreg = USARTx->DATA;
1757 (void) tmpreg;
1758}
1759
1765__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_FE(USART_TypeDef *USARTx)
1766{
1767 return (READ_BIT(USARTx->STS, USART_STS_FEFLG) == (USART_STS_FEFLG));
1768}
1769
1779__STATIC_INLINE void DDL_USART_ClearFlag_FE(USART_TypeDef *USARTx)
1780{
1781 __IO uint32_t tmpreg;
1782 tmpreg = USARTx->STS;
1783 (void) tmpreg;
1784 tmpreg = USARTx->DATA;
1785 (void) tmpreg;
1786}
1787
1793__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_NE(USART_TypeDef *USARTx)
1794{
1795 return (READ_BIT(USARTx->STS, USART_STS_NEFLG) == (USART_STS_NEFLG));
1796}
1797
1807__STATIC_INLINE void DDL_USART_ClearFlag_NE(USART_TypeDef *USARTx)
1808{
1809 __IO uint32_t tmpreg;
1810 tmpreg = USARTx->STS;
1811 (void) tmpreg;
1812 tmpreg = USARTx->DATA;
1813 (void) tmpreg;
1814}
1815
1821__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_ORE(USART_TypeDef *USARTx)
1822{
1823 return (READ_BIT(USARTx->STS, USART_STS_OVREFLG) == (USART_STS_OVREFLG));
1824}
1825
1835__STATIC_INLINE void DDL_USART_ClearFlag_ORE(USART_TypeDef *USARTx)
1836{
1837 __IO uint32_t tmpreg;
1838 tmpreg = USARTx->STS;
1839 (void) tmpreg;
1840 tmpreg = USARTx->DATA;
1841 (void) tmpreg;
1842}
1843
1849__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_IDLE(USART_TypeDef *USARTx)
1850{
1851 return (READ_BIT(USARTx->STS, USART_STS_IDLEFLG) == (USART_STS_IDLEFLG));
1852}
1853
1863__STATIC_INLINE void DDL_USART_ClearFlag_IDLE(USART_TypeDef *USARTx)
1864{
1865 __IO uint32_t tmpreg;
1866 tmpreg = USARTx->STS;
1867 (void) tmpreg;
1868 tmpreg = USARTx->DATA;
1869 (void) tmpreg;
1870}
1871
1877__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_RXNE(USART_TypeDef *USARTx)
1878{
1879 return (READ_BIT(USARTx->STS, USART_STS_RXBNEFLG) == (USART_STS_RXBNEFLG));
1880}
1881
1887__STATIC_INLINE void DDL_USART_ClearFlag_RXNE(USART_TypeDef *USARTx)
1888{
1889 WRITE_REG(USARTx->STS, ~(USART_STS_RXBNEFLG));
1890}
1891
1897__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_TC(USART_TypeDef *USARTx)
1898{
1899 return (READ_BIT(USARTx->STS, USART_STS_TXCFLG) == (USART_STS_TXCFLG));
1900}
1901
1907__STATIC_INLINE void DDL_USART_ClearFlag_TC(USART_TypeDef *USARTx)
1908{
1909 WRITE_REG(USARTx->STS, ~(USART_STS_TXCFLG));
1910}
1911
1917__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_TXE(USART_TypeDef *USARTx)
1918{
1919 return (READ_BIT(USARTx->STS, USART_STS_TXBEFLG) == (USART_STS_TXBEFLG));
1920}
1921
1929__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_LBD(USART_TypeDef *USARTx)
1930{
1931 return (READ_BIT(USARTx->STS, USART_STS_LBDFLG) == (USART_STS_LBDFLG));
1932}
1933
1941__STATIC_INLINE void DDL_USART_ClearFlag_LBD(USART_TypeDef *USARTx)
1942{
1943 WRITE_REG(USARTx->STS, ~(USART_STS_LBDFLG));
1944}
1945
1953__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_CTS(USART_TypeDef *USARTx)
1954{
1955 return (READ_BIT(USARTx->STS, USART_STS_CTSFLG) == (USART_STS_CTSFLG));
1956}
1957
1965__STATIC_INLINE void DDL_USART_ClearFlag_CTS(USART_TypeDef *USARTx)
1966{
1967 WRITE_REG(USARTx->STS, ~(USART_STS_CTSFLG));
1968}
1969
1975__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_SBK(USART_TypeDef *USARTx)
1976{
1977 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_TXBF) == (USART_CTRL1_TXBF));
1978}
1979
1985__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_RWU(USART_TypeDef *USARTx)
1986{
1987 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_RXMUTEEN) == (USART_CTRL1_RXMUTEEN));
1988}
1989
1993
1997
2003__STATIC_INLINE void DDL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
2004{
2005 SET_BIT(USARTx->CTRL1, USART_CTRL1_IDLEIEN);
2006}
2007
2013__STATIC_INLINE void DDL_USART_DisableIT_IDLE(USART_TypeDef *USARTx)
2014{
2015 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_IDLEIEN);
2016}
2017
2023__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_IDLE(USART_TypeDef *USARTx)
2024{
2025 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_IDLEIEN) == (USART_CTRL1_IDLEIEN));
2026}
2027
2033__STATIC_INLINE void DDL_USART_EnableIT_RXNE(USART_TypeDef *USARTx)
2034{
2035 SET_BIT(USARTx->CTRL1, USART_CTRL1_RXBNEIEN);
2036}
2037
2043__STATIC_INLINE void DDL_USART_DisableIT_RXNE(USART_TypeDef *USARTx)
2044{
2045 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_RXBNEIEN);
2046}
2047
2053__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_RXNE(USART_TypeDef *USARTx)
2054{
2055 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_RXBNEIEN) == (USART_CTRL1_RXBNEIEN));
2056}
2057
2063__STATIC_INLINE void DDL_USART_EnableIT_TC(USART_TypeDef *USARTx)
2064{
2065 SET_BIT(USARTx->CTRL1, USART_CTRL1_TXCIEN);
2066}
2067
2073__STATIC_INLINE void DDL_USART_DisableIT_TC(USART_TypeDef *USARTx)
2074{
2075 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_TXCIEN);
2076}
2077
2083__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_TC(USART_TypeDef *USARTx)
2084{
2085 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_TXCIEN) == (USART_CTRL1_TXCIEN));
2086}
2087
2093__STATIC_INLINE void DDL_USART_EnableIT_TXE(USART_TypeDef *USARTx)
2094{
2095 SET_BIT(USARTx->CTRL1, USART_CTRL1_TXBEIEN);
2096}
2097
2103__STATIC_INLINE void DDL_USART_DisableIT_TXE(USART_TypeDef *USARTx)
2104{
2105 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_TXBEIEN);
2106}
2107
2113__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_TXE(USART_TypeDef *USARTx)
2114{
2115 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_TXBEIEN) == (USART_CTRL1_TXBEIEN));
2116}
2117
2123__STATIC_INLINE void DDL_USART_EnableIT_PE(USART_TypeDef *USARTx)
2124{
2125 SET_BIT(USARTx->CTRL1, USART_CTRL1_PEIEN);
2126}
2127
2133__STATIC_INLINE void DDL_USART_DisableIT_PE(USART_TypeDef *USARTx)
2134{
2135 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_PEIEN);
2136}
2137
2143__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_PE(USART_TypeDef *USARTx)
2144{
2145 return (READ_BIT(USARTx->CTRL1, USART_CTRL1_PEIEN) == (USART_CTRL1_PEIEN));
2146}
2147
2155__STATIC_INLINE void DDL_USART_EnableIT_LBD(USART_TypeDef *USARTx)
2156{
2157 SET_BIT(USARTx->CTRL2, USART_CTRL2_LBDIEN);
2158}
2159
2167__STATIC_INLINE void DDL_USART_DisableIT_LBD(USART_TypeDef *USARTx)
2168{
2169 CLEAR_BIT(USARTx->CTRL2, USART_CTRL2_LBDIEN);
2170}
2171
2179__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_LBD(USART_TypeDef *USARTx)
2180{
2181 return (READ_BIT(USARTx->CTRL2, USART_CTRL2_LBDIEN) == (USART_CTRL2_LBDIEN));
2182}
2183
2193__STATIC_INLINE void DDL_USART_EnableIT_ERROR(USART_TypeDef *USARTx)
2194{
2195 SET_BIT(USARTx->CTRL3, USART_CTRL3_ERRIEN);
2196}
2197
2207__STATIC_INLINE void DDL_USART_DisableIT_ERROR(USART_TypeDef *USARTx)
2208{
2209 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_ERRIEN);
2210}
2211
2217__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_ERROR(USART_TypeDef *USARTx)
2218{
2219 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_ERRIEN) == (USART_CTRL3_ERRIEN));
2220}
2221
2229__STATIC_INLINE void DDL_USART_EnableIT_CTS(USART_TypeDef *USARTx)
2230{
2231 SET_BIT(USARTx->CTRL3, USART_CTRL3_CTSIEN);
2232}
2233
2241__STATIC_INLINE void DDL_USART_DisableIT_CTS(USART_TypeDef *USARTx)
2242{
2243 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_CTSIEN);
2244}
2245
2253__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_CTS(USART_TypeDef *USARTx)
2254{
2255 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_CTSIEN) == (USART_CTRL3_CTSIEN));
2256}
2257
2261
2265
2271__STATIC_INLINE void DDL_USART_EnableDMAReq_RX(USART_TypeDef *USARTx)
2272{
2273 SET_BIT(USARTx->CTRL3, USART_CTRL3_DMARXEN);
2274}
2275
2281__STATIC_INLINE void DDL_USART_DisableDMAReq_RX(USART_TypeDef *USARTx)
2282{
2283 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_DMARXEN);
2284}
2285
2291__STATIC_INLINE uint32_t DDL_USART_IsEnabledDMAReq_RX(USART_TypeDef *USARTx)
2292{
2293 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_DMARXEN) == (USART_CTRL3_DMARXEN));
2294}
2295
2301__STATIC_INLINE void DDL_USART_EnableDMAReq_TX(USART_TypeDef *USARTx)
2302{
2303 SET_BIT(USARTx->CTRL3, USART_CTRL3_DMATXEN);
2304}
2305
2311__STATIC_INLINE void DDL_USART_DisableDMAReq_TX(USART_TypeDef *USARTx)
2312{
2313 CLEAR_BIT(USARTx->CTRL3, USART_CTRL3_DMATXEN);
2314}
2315
2321__STATIC_INLINE uint32_t DDL_USART_IsEnabledDMAReq_TX(USART_TypeDef *USARTx)
2322{
2323 return (READ_BIT(USARTx->CTRL3, USART_CTRL3_DMATXEN) == (USART_CTRL3_DMATXEN));
2324}
2325
2332__STATIC_INLINE uint32_t DDL_USART_DMA_GetRegAddr(USART_TypeDef *USARTx)
2333{
2334 /* return address of DR register */
2335 return ((uint32_t) &(USARTx->DATA));
2336}
2337
2341
2345
2351__STATIC_INLINE uint8_t DDL_USART_ReceiveData8(USART_TypeDef *USARTx)
2352{
2353 return (uint8_t)(READ_BIT(USARTx->DATA, USART_DATA_DATA));
2354}
2355
2361__STATIC_INLINE uint16_t DDL_USART_ReceiveData9(USART_TypeDef *USARTx)
2362{
2363 return (uint16_t)(READ_BIT(USARTx->DATA, USART_DATA_DATA));
2364}
2365
2372__STATIC_INLINE void DDL_USART_TransmitData8(USART_TypeDef *USARTx, uint8_t Value)
2373{
2374 USARTx->DATA = Value;
2375}
2376
2383__STATIC_INLINE void DDL_USART_TransmitData9(USART_TypeDef *USARTx, uint16_t Value)
2384{
2385 USARTx->DATA = Value & 0x1FFU;
2386}
2387
2391
2395
2401__STATIC_INLINE void DDL_USART_RequestBreakSending(USART_TypeDef *USARTx)
2402{
2403 SET_BIT(USARTx->CTRL1, USART_CTRL1_TXBF);
2404}
2405
2411__STATIC_INLINE void DDL_USART_RequestEnterMuteMode(USART_TypeDef *USARTx)
2412{
2413 SET_BIT(USARTx->CTRL1, USART_CTRL1_RXMUTEEN);
2414}
2415
2421__STATIC_INLINE void DDL_USART_RequestExitMuteMode(USART_TypeDef *USARTx)
2422{
2423 CLEAR_BIT(USARTx->CTRL1, USART_CTRL1_RXMUTEEN);
2424}
2425
2429
2430#if defined(USE_FULL_DDL_DRIVER)
2434ErrorStatus DDL_USART_DeInit(USART_TypeDef *USARTx);
2435ErrorStatus DDL_USART_Init(USART_TypeDef *USARTx, DDL_USART_InitTypeDef *USART_InitStruct);
2436void DDL_USART_StructInit(DDL_USART_InitTypeDef *USART_InitStruct);
2437ErrorStatus DDL_USART_ClockInit(USART_TypeDef *USARTx, DDL_USART_ClockInitTypeDef *USART_ClockInitStruct);
2438void DDL_USART_ClockStructInit(DDL_USART_ClockInitTypeDef *USART_ClockInitStruct);
2442#endif /* USE_FULL_DDL_DRIVER */
2443
2447
2451
2452#endif /* USART1 || USART2 */
2453
2457
2458#ifdef __cplusplus
2459}
2460#endif
2461
2462#endif /* G32R4xx_DDL_USART_H */
2463
#define DDL_USART_OVERSAMPLING_8
__STATIC_INLINE void DDL_USART_ConfigHalfDuplexMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in Half Duplex Mode.
__STATIC_INLINE void DDL_USART_ConfigMultiProcessMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in Multi processor Mode (several USARTs connect...
__STATIC_INLINE void DDL_USART_ConfigLINMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in LIN Mode.
__STATIC_INLINE void DDL_USART_ConfigAsyncMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in Asynchronous Mode (UART).
__STATIC_INLINE void DDL_USART_ConfigSyncMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in Synchronous Mode.
__STATIC_INLINE void DDL_USART_ConfigSmartcardMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in Smartcard Mode.
__STATIC_INLINE void DDL_USART_ConfigIrdaMode(USART_TypeDef *USARTx)
Perform basic configuration of USART for enabling use in Irda Mode.
__STATIC_INLINE void DDL_USART_EnableHalfDuplex(USART_TypeDef *USARTx)
Enable Single Wire Half-Duplex mode.
__STATIC_INLINE void DDL_USART_DisableHalfDuplex(USART_TypeDef *USARTx)
Disable Single Wire Half-Duplex mode.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledHalfDuplex(USART_TypeDef *USARTx)
Indicate if Single Wire Half-Duplex mode is enabled.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIrda(USART_TypeDef *USARTx)
Indicate if IrDA mode is enabled.
__STATIC_INLINE void DDL_USART_SetIrdaPowerMode(USART_TypeDef *USARTx, uint32_t PowerMode)
Configure IrDA Power Mode (Normal or Low Power).
__STATIC_INLINE void DDL_USART_DisableIrda(USART_TypeDef *USARTx)
Disable IrDA mode.
__STATIC_INLINE uint32_t DDL_USART_GetIrdaPrescaler(USART_TypeDef *USARTx)
Return Irda prescaler value, used for dividing the USART clock source to achieve the Irda Low Power f...
__STATIC_INLINE uint32_t DDL_USART_GetIrdaPowerMode(USART_TypeDef *USARTx)
Retrieve IrDA Power Mode configuration (Normal or Low Power).
__STATIC_INLINE void DDL_USART_EnableIrda(USART_TypeDef *USARTx)
Enable IrDA mode.
__STATIC_INLINE void DDL_USART_SetIrdaPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
Set Irda prescaler value, used for dividing the USART clock source to achieve the Irda Low Power freq...
__STATIC_INLINE void DDL_USART_SetLINBrkDetectionLen(USART_TypeDef *USARTx, uint32_t LINBDLength)
Set LIN Break Detection Length.
__STATIC_INLINE void DDL_USART_DisableLIN(USART_TypeDef *USARTx)
Disable LIN mode.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledLIN(USART_TypeDef *USARTx)
Indicate if LIN mode is enabled.
__STATIC_INLINE uint32_t DDL_USART_GetLINBrkDetectionLen(USART_TypeDef *USARTx)
Return LIN Break Detection Length.
__STATIC_INLINE void DDL_USART_EnableLIN(USART_TypeDef *USARTx)
Enable LIN mode.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledSmartcardNACK(USART_TypeDef *USARTx)
Indicate if Smartcard NACK transmission is enabled.
__STATIC_INLINE uint32_t DDL_USART_GetSmartcardPrescaler(USART_TypeDef *USARTx)
Return Smartcard prescaler value, used for dividing the USART clock source to provide the SMARTCARD C...
__STATIC_INLINE void DDL_USART_DisableSmartcardNACK(USART_TypeDef *USARTx)
Disable Smartcard NACK transmission.
__STATIC_INLINE void DDL_USART_EnableSmartcardNACK(USART_TypeDef *USARTx)
Enable Smartcard NACK transmission.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledSmartcard(USART_TypeDef *USARTx)
Indicate if Smartcard mode is enabled.
__STATIC_INLINE void DDL_USART_EnableSmartcard(USART_TypeDef *USARTx)
Enable Smartcard mode.
__STATIC_INLINE void DDL_USART_SetSmartcardGuardTime(USART_TypeDef *USARTx, uint32_t GuardTime)
Set Smartcard Guard time value, expressed in nb of baud clocks periods (GT[7:0] bits : Guard time val...
__STATIC_INLINE uint32_t DDL_USART_GetSmartcardGuardTime(USART_TypeDef *USARTx)
Return Smartcard Guard time value, expressed in nb of baud clocks periods (GT[7:0] bits : Guard time ...
__STATIC_INLINE void DDL_USART_DisableSmartcard(USART_TypeDef *USARTx)
Disable Smartcard mode.
__STATIC_INLINE void DDL_USART_SetSmartcardPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
Set Smartcard prescaler value, used for dividing the USART clock source to provide the SMARTCARD Cloc...
__STATIC_INLINE uint32_t DDL_USART_GetDEDeassertionTime(USART_TypeDef *USARTx)
Return DEDT (Driver Enable De-Assertion Time).
__STATIC_INLINE uint32_t DDL_USART_IsEnabled(USART_TypeDef *USARTx)
Indicate if USART is enabled.
__STATIC_INLINE uint32_t DDL_USART_GetClockPhase(USART_TypeDef *USARTx)
Return phase of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE void DDL_USART_SetTransferDirection(USART_TypeDef *USARTx, uint32_t TransferDirection)
Configure simultaneously enabled/disabled states of Transmitter and Receiver.
__STATIC_INLINE void DDL_USART_SetHWFlowCtrl(USART_TypeDef *USARTx, uint32_t HardwareFlowControl)
Configure HW Flow Control mode (both CTS and RTS).
__STATIC_INLINE void DDL_USART_EnableDirectionRx(USART_TypeDef *USARTx)
Receiver Enable (Receiver is enabled and begins searching for a start bit).
__STATIC_INLINE void DDL_USART_Disable(USART_TypeDef *USARTx)
USART Disable (all USART prescalers and outputs are disabled).
__STATIC_INLINE uint32_t DDL_USART_GetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling)
Return current Baud Rate value, according to USARTDIV present in BRR register (full BRR content),...
__STATIC_INLINE void DDL_USART_SetDEDeassertionTime(USART_TypeDef *USARTx, uint32_t Time)
Set DEDT (Driver Enable De-Assertion Time), Time value expressed on 5 bits ([4:0] bits).
__STATIC_INLINE void DDL_USART_ConfigCharacter(USART_TypeDef *USARTx, uint32_t DataWidth, uint32_t Parity, uint32_t StopBits)
Configure Character frame format (Datawidth, Parity control, Stop Bits).
__STATIC_INLINE void DDL_USART_SetOverSampling(USART_TypeDef *USARTx, uint32_t OverSampling)
Set Oversampling to 8-bit or 16-bit mode.
__STATIC_INLINE void DDL_USART_DisableDirectionTx(USART_TypeDef *USARTx)
Transmitter Disable.
__STATIC_INLINE void DDL_USART_DisableRTSHWFlowCtrl(USART_TypeDef *USARTx)
Disable RTS HW Flow Control.
__STATIC_INLINE uint32_t DDL_USART_GetOverSampling(USART_TypeDef *USARTx)
Return Oversampling mode.
__STATIC_INLINE void DDL_USART_EnableCTSHWFlowCtrl(USART_TypeDef *USARTx)
Enable CTS HW Flow Control.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledSCLKOutput(USART_TypeDef *USARTx)
Indicate if Clock output on SCLK pin is enabled.
__STATIC_INLINE uint32_t DDL_USART_GetClockPolarity(USART_TypeDef *USARTx)
Return polarity of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE void DDL_USART_SetParity(USART_TypeDef *USARTx, uint32_t Parity)
Configure Parity (enabled/disabled and parity mode if enabled).
__STATIC_INLINE void DDL_USART_EnableRTSHWFlowCtrl(USART_TypeDef *USARTx)
Enable RTS HW Flow Control.
__STATIC_INLINE uint32_t DDL_USART_GetWakeUpMethod(USART_TypeDef *USARTx)
Return Receiver Wake Up method from Mute mode.
__STATIC_INLINE uint32_t DDL_USART_GetDataWidth(USART_TypeDef *USARTx)
Return Word length (i.e. nb of data bits, excluding start and stop bits).
__STATIC_INLINE uint32_t DDL_USART_GetHWFlowCtrl(USART_TypeDef *USARTx)
Return HW Flow Control configuration (both CTS and RTS).
__STATIC_INLINE void DDL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling, uint32_t BaudRate)
Configure USART BRR register for achieving expected Baud Rate value.
__STATIC_INLINE void DDL_USART_SetLastClkPulseOutput(USART_TypeDef *USARTx, uint32_t LastBitClockPulse)
Configure if Clock pulse of the last data bit is output to the SCLK pin or not.
__STATIC_INLINE void DDL_USART_SetClockPolarity(USART_TypeDef *USARTx, uint32_t ClockPolarity)
Select the polarity of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE void DDL_USART_SetWakeUpMethod(USART_TypeDef *USARTx, uint32_t Method)
Set Receiver Wake Up method from Mute mode.
__STATIC_INLINE void DDL_USART_DisableDirectionRx(USART_TypeDef *USARTx)
Receiver Disable.
__STATIC_INLINE void DDL_USART_Enable(USART_TypeDef *USARTx)
USART Enable.
__STATIC_INLINE uint32_t DDL_USART_GetNodeAddress(USART_TypeDef *USARTx)
Return 4 bit Address of the USART node as set in ADD field of CTRL2.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledDEMode(USART_TypeDef *USARTx)
Indicate if Driver Enable (DE) Mode is enabled.
__STATIC_INLINE void DDL_USART_SetClockPhase(USART_TypeDef *USARTx, uint32_t ClockPhase)
Select the phase of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE void DDL_USART_SetStopBitsLength(USART_TypeDef *USARTx, uint32_t StopBits)
Set the length of the stop bits.
__STATIC_INLINE void DDL_USART_ConfigClock(USART_TypeDef *USARTx, uint32_t Phase, uint32_t Polarity, uint32_t LBCPOutput)
Configure Clock signal format (Phase Polarity and choice about output of last bit clock pulse).
__STATIC_INLINE void DDL_USART_SetDEAssertionTime(USART_TypeDef *USARTx, uint32_t Time)
Set DEAT (Driver Enable Assertion Time), Time value expressed on 5 bits ([4:0] bits).
__STATIC_INLINE uint32_t DDL_USART_GetParity(USART_TypeDef *USARTx)
Return Parity configuration (enabled/disabled and parity mode if enabled).
__STATIC_INLINE void DDL_USART_SetSampleMethod(USART_TypeDef *USARTx, uint32_t Sample)
Configure sampling method.
__STATIC_INLINE uint32_t DDL_USART_GetStopBitsLength(USART_TypeDef *USARTx)
Retrieve the length of the stop bits.
__STATIC_INLINE void DDL_USART_EnableDirectionTx(USART_TypeDef *USARTx)
Transmitter Enable.
__STATIC_INLINE void DDL_USART_EnableDEMode(USART_TypeDef *USARTx)
Enable Driver Enable (DE) Mode.
__STATIC_INLINE void DDL_USART_DisableCTSHWFlowCtrl(USART_TypeDef *USARTx)
Disable CTS HW Flow Control.
__STATIC_INLINE void DDL_USART_DisableSCLKOutput(USART_TypeDef *USARTx)
Disable Clock output on SCLK pin.
__STATIC_INLINE uint32_t DDL_USART_GetTransferDirection(USART_TypeDef *USARTx)
Return enabled/disabled states of Transmitter and Receiver.
__STATIC_INLINE void DDL_USART_DisableDEMode(USART_TypeDef *USARTx)
Disable Driver Enable (DE) Mode.
__STATIC_INLINE uint32_t DDL_USART_GetLastClkPulseOutput(USART_TypeDef *USARTx)
Retrieve Clock pulse of the last data bit output configuration (Last bit Clock pulse output to the SC...
__STATIC_INLINE void DDL_USART_SetNodeAddress(USART_TypeDef *USARTx, uint32_t NodeAddress)
Set Address of the USART node.
__STATIC_INLINE void DDL_USART_EnableSCLKOutput(USART_TypeDef *USARTx)
Enable Clock output on SCLK pin.
__STATIC_INLINE uint32_t DDL_USART_GetDEAssertionTime(USART_TypeDef *USARTx)
Return DEAT (Driver Enable Assertion Time).
__STATIC_INLINE void DDL_USART_SetDataWidth(USART_TypeDef *USARTx, uint32_t DataWidth)
Set Word length (i.e. nb of data bits, excluding start and stop bits).
__STATIC_INLINE void DDL_USART_EnableDMAReq_RX(USART_TypeDef *USARTx)
Enable DMA Mode for reception.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledDMAReq_RX(USART_TypeDef *USARTx)
Check if DMA Mode is enabled for reception.
__STATIC_INLINE uint32_t DDL_USART_DMA_GetRegAddr(USART_TypeDef *USARTx)
Get the data register address used for DMA transfer.
__STATIC_INLINE void DDL_USART_DisableDMAReq_TX(USART_TypeDef *USARTx)
Disable DMA Mode for transmission.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledDMAReq_TX(USART_TypeDef *USARTx)
Check if DMA Mode is enabled for transmission.
__STATIC_INLINE void DDL_USART_DisableDMAReq_RX(USART_TypeDef *USARTx)
Disable DMA Mode for reception.
__STATIC_INLINE void DDL_USART_EnableDMAReq_TX(USART_TypeDef *USARTx)
Enable DMA Mode for transmission.
__STATIC_INLINE uint16_t DDL_USART_ReceiveData9(USART_TypeDef *USARTx)
Read Receiver Data register (Receive Data value, 9 bits).
__STATIC_INLINE uint8_t DDL_USART_ReceiveData8(USART_TypeDef *USARTx)
Read Receiver Data register (Receive Data value, 8 bits).
__STATIC_INLINE void DDL_USART_TransmitData8(USART_TypeDef *USARTx, uint8_t Value)
Write in Transmitter Data Register (Transmit Data value, 8 bits).
__STATIC_INLINE void DDL_USART_TransmitData9(USART_TypeDef *USARTx, uint16_t Value)
Write in Transmitter Data Register (Transmit Data value, 9 bits).
__STATIC_INLINE void DDL_USART_RequestEnterMuteMode(USART_TypeDef *USARTx)
Put USART in Mute mode.
__STATIC_INLINE void DDL_USART_RequestBreakSending(USART_TypeDef *USARTx)
Request Break sending.
__STATIC_INLINE void DDL_USART_RequestExitMuteMode(USART_TypeDef *USARTx)
Put USART in Active mode.
__STATIC_INLINE void DDL_USART_ClearFlag_NE(USART_TypeDef *USARTx)
Clear Noise detected Flag.
__STATIC_INLINE void DDL_USART_ClearFlag_LBD(USART_TypeDef *USARTx)
Clear LIN Break Detection Flag.
__STATIC_INLINE void DDL_USART_ClearFlag_CTS(USART_TypeDef *USARTx)
Clear CTS Interrupt Flag.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_PE(USART_TypeDef *USARTx)
Check if the USART Parity Error Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_RWU(USART_TypeDef *USARTx)
Check if the USART Receive Wake Up from mute mode Flag is set or not.
__STATIC_INLINE void DDL_USART_ClearFlag_ORE(USART_TypeDef *USARTx)
Clear OverRun Error Flag.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_RXNE(USART_TypeDef *USARTx)
Check if the USART Read Data Register Not Empty Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_TC(USART_TypeDef *USARTx)
Check if the USART Transmission Complete Flag is set or not.
__STATIC_INLINE void DDL_USART_ClearFlag_RXNE(USART_TypeDef *USARTx)
Clear RX Not Empty Flag.
__STATIC_INLINE void DDL_USART_ClearFlag_IDLE(USART_TypeDef *USARTx)
Clear IDLE line detected Flag.
__STATIC_INLINE void DDL_USART_ClearFlag_FE(USART_TypeDef *USARTx)
Clear Framing Error Flag.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_IDLE(USART_TypeDef *USARTx)
Check if the USART IDLE line detected Flag is set or not.
__STATIC_INLINE void DDL_USART_ClearFlag_TC(USART_TypeDef *USARTx)
Clear Transmission Complete Flag.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_CTS(USART_TypeDef *USARTx)
Check if the USART CTS Flag is set or not.
__STATIC_INLINE void DDL_USART_ClearFlag_PE(USART_TypeDef *USARTx)
Clear Parity Error Flag.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_ORE(USART_TypeDef *USARTx)
Check if the USART OverRun Error Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_NE(USART_TypeDef *USARTx)
Check if the USART Noise error detected Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_SBK(USART_TypeDef *USARTx)
Check if the USART Send Break Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_FE(USART_TypeDef *USARTx)
Check if the USART Framing Error Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_TXE(USART_TypeDef *USARTx)
Check if the USART Transmit Data Register Empty Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsActiveFlag_LBD(USART_TypeDef *USARTx)
Check if the USART LIN Break Detection Flag is set or not.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_TXE(USART_TypeDef *USARTx)
Check if the USART TX Empty Interrupt is enabled or disabled.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_TC(USART_TypeDef *USARTx)
Check if the USART Transmission Complete Interrupt is enabled or disabled.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_LBD(USART_TypeDef *USARTx)
Check if the USART LIN Break Detection Interrupt is enabled or disabled.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_RXNE(USART_TypeDef *USARTx)
Check if the USART RX Not Empty Interrupt is enabled or disabled.
__STATIC_INLINE void DDL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
Enable IDLE Interrupt.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_PE(USART_TypeDef *USARTx)
Check if the USART Parity Error Interrupt is enabled or disabled.
__STATIC_INLINE void DDL_USART_DisableIT_PE(USART_TypeDef *USARTx)
Disable Parity Error Interrupt.
__STATIC_INLINE void DDL_USART_DisableIT_TC(USART_TypeDef *USARTx)
Disable Transmission Complete Interrupt.
__STATIC_INLINE void DDL_USART_EnableIT_TC(USART_TypeDef *USARTx)
Enable Transmission Complete Interrupt.
__STATIC_INLINE void DDL_USART_EnableIT_LBD(USART_TypeDef *USARTx)
Enable LIN Break Detection Interrupt.
__STATIC_INLINE void DDL_USART_DisableIT_TXE(USART_TypeDef *USARTx)
Disable TX Empty Interrupt.
__STATIC_INLINE void DDL_USART_EnableIT_CTS(USART_TypeDef *USARTx)
Enable CTS Interrupt.
__STATIC_INLINE void DDL_USART_DisableIT_CTS(USART_TypeDef *USARTx)
Disable CTS Interrupt.
__STATIC_INLINE void DDL_USART_DisableIT_RXNE(USART_TypeDef *USARTx)
Disable RX Not Empty Interrupt.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_CTS(USART_TypeDef *USARTx)
Check if the USART CTS Interrupt is enabled or disabled.
__STATIC_INLINE void DDL_USART_DisableIT_LBD(USART_TypeDef *USARTx)
Disable LIN Break Detection Interrupt.
__STATIC_INLINE void DDL_USART_DisableIT_IDLE(USART_TypeDef *USARTx)
Disable IDLE Interrupt.
__STATIC_INLINE void DDL_USART_EnableIT_TXE(USART_TypeDef *USARTx)
Enable TX Empty Interrupt.
__STATIC_INLINE void DDL_USART_EnableIT_ERROR(USART_TypeDef *USARTx)
Enable Error Interrupt.
__STATIC_INLINE void DDL_USART_EnableIT_PE(USART_TypeDef *USARTx)
Enable Parity Error Interrupt.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_IDLE(USART_TypeDef *USARTx)
Check if the USART IDLE Interrupt source is enabled or disabled.
__STATIC_INLINE void DDL_USART_EnableIT_RXNE(USART_TypeDef *USARTx)
Enable RX Not Empty Interrupt.
__STATIC_INLINE void DDL_USART_DisableIT_ERROR(USART_TypeDef *USARTx)
Disable Error Interrupt.
__STATIC_INLINE uint32_t DDL_USART_IsEnabledIT_ERROR(USART_TypeDef *USARTx)
Check if the USART Error Interrupt is enabled or disabled.
void DDL_USART_StructInit(DDL_USART_InitTypeDef *USART_InitStruct)
Set each DDL_USART_InitTypeDef field to default value.
ErrorStatus DDL_USART_Init(USART_TypeDef *USARTx, DDL_USART_InitTypeDef *USART_InitStruct)
Initialize USART registers according to the specified parameters in USART_InitStruct.
ErrorStatus DDL_USART_ClockInit(USART_TypeDef *USARTx, DDL_USART_ClockInitTypeDef *USART_ClockInitStruct)
Initialize USART Clock related settings according to the specified parameters in the USART_ClockInitS...
ErrorStatus DDL_USART_DeInit(USART_TypeDef *USARTx)
De-initialize USART registers (Registers restored to their default values).
void DDL_USART_ClockStructInit(DDL_USART_ClockInitTypeDef *USART_ClockInitStruct)
Set each field of a DDL_USART_ClockInitTypeDef type structure to default value.
#define USART_POSITION_GTPR_GT
LL USART Clock Init Structure definition.
LL USART Init Structure definition.