1 /*********************************************************************************************************//**
2  * @file    ht32f5xxxx_usart.h
3  * @version $Rev:: 7107         $
4  * @date    $Date:: 2023-08-08 #$
5  * @brief   The header file of the USART library.
6  *************************************************************************************************************
7  * @attention
8  *
9  * Firmware Disclaimer Information
10  *
11  * 1. The customer hereby acknowledges and agrees that the program technical documentation, including the
12  *    code, which is supplied by Holtek Semiconductor Inc., (hereinafter referred to as "HOLTEK") is the
13  *    proprietary and confidential intellectual property of HOLTEK, and is protected by copyright law and
14  *    other intellectual property laws.
15  *
16  * 2. The customer hereby acknowledges and agrees that the program technical documentation, including the
17  *    code, is confidential information belonging to HOLTEK, and must not be disclosed to any third parties
18  *    other than HOLTEK and the customer.
19  *
20  * 3. The program technical documentation, including the code, is provided "as is" and for customer reference
21  *    only. After delivery by HOLTEK, the customer shall use the program technical documentation, including
22  *    the code, at their own risk. HOLTEK disclaims any expressed, implied or statutory warranties, including
23  *    the warranties of merchantability, satisfactory quality and fitness for a particular purpose.
24  *
25  * <h2><center>Copyright (C) Holtek Semiconductor Inc. All rights reserved</center></h2>
26  ************************************************************************************************************/
27 
28 /* Define to prevent recursive inclusion -------------------------------------------------------------------*/
29 #ifndef __HT32F5XXXX_USART_H
30 #define __HT32F5XXXX_USART_H
31 
32 #ifdef __cplusplus
33  extern "C" {
34 #endif
35 
36 /* Includes ------------------------------------------------------------------------------------------------*/
37 #include "ht32.h"
38 
39 /** @addtogroup HT32F5xxxx_Peripheral_Driver HT32F5xxxx Peripheral Driver
40   * @{
41   */
42 
43 /** @addtogroup USART
44   * @{
45   */
46 
47 
48 /* Exported types ------------------------------------------------------------------------------------------*/
49 /** @defgroup USART_Exported_Types USART exported types
50   * @{
51   */
52 /* Definition of USART Init Structure  ---------------------------------------------------------------------*/
53 typedef struct
54 {
55   u32 USART_BaudRate;
56   u16 USART_WordLength;
57   u16 USART_StopBits;
58   u16 USART_Parity;
59   u32 USART_Mode;
60 } USART_InitTypeDef;
61 
62 typedef struct
63 {
64   u16 USART_ClockEnable;
65   u16 USART_ClockPhase;
66   u16 USART_ClockPolarity;
67   u16 USART_TransferSelectMode;
68 } USART_SynClock_InitTypeDef;
69 /**
70   * @}
71   */
72 
73 /* Exported constants --------------------------------------------------------------------------------------*/
74 /** @defgroup USART_Exported_Constants USART exported constants
75   * @{
76   */
77 
78 #define USART_CMD_TX                  (0)
79 #define USART_CMD_RX                  (1)
80 
81 #define USART_CMD_OUT                 (0)
82 #define USART_CMD_IN                  (1)
83 
84 /* USART Word Length ---------------------------------------------------------------------------------------*/
85 /** @defgroup USART_Word_Length Definitions of USART word length
86   * @{
87   */
88 #define USART_WORDLENGTH_7B           ((u32)0x00000000)
89 #define USART_WORDLENGTH_8B           ((u32)0x00000100)
90 #define USART_WORDLENGTH_9B           ((u32)0x00000200)
91 
92 #define IS_USART_WORD_LENGTH(LENGTH)  ((LENGTH == USART_WORDLENGTH_9B) || \
93                                        (LENGTH == USART_WORDLENGTH_8B) || \
94                                        (LENGTH == USART_WORDLENGTH_7B))
95 /**
96   * @}
97   */
98 
99 /* USART Stop Bits -----------------------------------------------------------------------------------------*/
100 /** @defgroup USART_Stop_Bit Definitions of USART stop bit
101   * @{
102   */
103 #define USART_STOPBITS_1              ((u32)0x00000000)
104 #define USART_STOPBITS_2              ((u32)0x00000400)
105 
106 
107 #define IS_USART_STOPBITS(STOPBITS)   ((STOPBITS == USART_STOPBITS_1) || \
108                                        (STOPBITS == USART_STOPBITS_2))
109 /**
110   * @}
111   */
112 
113 /* USART Parity --------------------------------------------------------------------------------------------*/
114 /** @defgroup USART_Parity Definitions of USART parity
115   * @{
116   */
117 #define USART_PARITY_NO               ((u32)0x00000000)
118 #define USART_PARITY_EVEN             ((u32)0x00001800)
119 #define USART_PARITY_ODD              ((u32)0x00000800)
120 #define USART_PARITY_MARK             ((u32)0x00002800)
121 #define USART_PARITY_SPACE            ((u32)0x00003800)
122 
123 #define IS_USART_PARITY(PARITY)       ((PARITY == USART_PARITY_NO)   || \
124                                        (PARITY == USART_PARITY_EVEN) || \
125                                        (PARITY == USART_PARITY_ODD))
126 /**
127   * @}
128   */
129 
130 /* USART Mode ----------------------------------------------------------------------------------------------*/
131 /** @defgroup USART_Mode Definitions of USART mode
132   * @{
133   */
134 #define USART_MODE_NORMAL             ((u32)0x00000000)
135 #define USART_MODE_IRDA               ((u32)0x00000001)
136 #define USART_MODE_RS485              ((u32)0x00000002)
137 #define USART_MODE_SYNCHRONOUS        ((u32)0x00000003)
138 #if (LIBCFG_USART_LIN)
139 #define USART_MODE_LIN                ((u32)0x00010000)
140 #define IS_MODE_LIN(x)                (x == USART_MODE_LIN)
141 #else
142 #define IS_MODE_LIN(x)                (0)
143 #endif
144 #if (LIBCFG_USART_SINGLE_WIRE)
145 #define USART_MODE_SINGLE_WIRE        ((u32)0x00010001)
146 #define IS_MODE_SINGLE_WIRE(x)        (x == USART_MODE_SINGLE_WIRE)
147 #else
148 #define IS_MODE_SINGLE_WIRE(x)        (0)
149 #endif
150 #define IS_USART_MODE(MODE)           ((MODE == USART_MODE_NORMAL)      || \
151                                        (MODE == USART_MODE_IRDA)        || \
152                                        (MODE == USART_MODE_RS485)       || \
153                                        (MODE == USART_MODE_SYNCHRONOUS) || \
154                                        IS_MODE_LIN(MODE)                || \
155                                        IS_MODE_SINGLE_WIRE(MODE))
156 /**
157   * @}
158   */
159 
160 /* USART Transfer Select Mode ------------------------------------------------------------------------------*/
161 /** @defgroup USART_LSB Definitions of USART LSB
162   * @{
163   */
164 #define USART_LSB_FIRST               ((u32)0x00000000)
165 #define USART_MSB_FIRST               ((u32)0x00000004)
166 
167 #define IS_USART_TRANSFER_MODE(TMODE) ((TMODE == USART_LSB_FIRST) || \
168                                        (TMODE == USART_MSB_FIRST))
169 /**
170   * @}
171   */
172 
173 
174 /* USART Synchronous Clock ---------------------------------------------------------------------------------*/
175 /** @defgroup USART_Synchronous_Clock Definitions of USART synchronous clock
176   * @{
177   */
178 #define USART_SYN_CLOCK_DISABLE                 ((u32)0x00000000)
179 #define USART_SYN_CLOCK_ENABLE                  ((u32)0x00000001)
180 
181 #define IS_USART_SYNCHRONOUS_CLOCK(SYNCLOCK)    ((SYNCLOCK == USART_SYN_CLOCK_DISABLE) || \
182                                                  (SYNCLOCK == USART_SYN_CLOCK_ENABLE))
183 /**
184   * @}
185   */
186 
187 /* USART Synchronous Clock Phase ---------------------------------------------------------------------------*/
188 /** @defgroup USART_Synchronous_Clock_Phase Definitions of USART Synchronous clock phase
189   * @{
190   */
191 #define USART_SYN_CLOCK_PHASE_FIRST             ((u32)0x00000000)
192 #define USART_SYN_CLOCK_PHASE_SECOND            ((u32)0x00000004)
193 
194 #define IS_USART_SYNCHRONOUS_PHASE(PHASE)       ((PHASE == USART_SYN_CLOCK_PHASE_FIRST) || \
195                                                  (PHASE == USART_SYN_CLOCK_PHASE_SECOND))
196 /**
197   * @}
198   */
199 
200 /* USART Clock Polarity ------------------------------------------------------------------------------------*/
201 /** @defgroup USART_Clock_Polarity Definitions of USART clock polarity
202   * @{
203   */
204 #define USART_SYN_CLOCK_POLARITY_LOW            ((u32)0x00000000)
205 #define USART_SYN_CLOCK_POLARITY_HIGH           ((u32)0x00000008)
206 
207 #define IS_USART_SYNCHRONOUS_POLARITY(POLARITY) ((POLARITY == USART_SYN_CLOCK_POLARITY_LOW) || \
208                                                  (POLARITY == USART_SYN_CLOCK_POLARITY_HIGH))
209 /**
210   * @}
211   */
212 
213 /* USART IrDA  ---------------------------------------------------------------------------------------------*/
214 /** @defgroup USART_IrDA Definitions of USART IrDA
215   * @{
216   */
217 #define USART_IRDA_LOWPOWER                     ((u32)0x00000002)
218 #define USART_IRDA_NORMAL                       ((u32)0xFFFFFFFD)
219 
220 #define IS_USART_IRDA_MODE(MODE)                ((MODE == USART_IRDA_LOWPOWER) || \
221                                                  (MODE == USART_IRDA_NORMAL))
222 
223 #define USART_IRDA_TX                           ((u32)0x00000004)
224 #define USART_IRDA_RX                           ((u32)0xFFFFFFFB)
225 
226 #define IS_USART_IRDA_DIRECTION(DIRECTION)      ((DIRECTION == USART_IRDA_TX) || \
227                                                  (DIRECTION == USART_IRDA_RX))
228 /**
229   * @}
230   */
231 
232 #define IS_USART_TL(x)                (IS_USART_RXTL(x) || IS_USART_TXTL(x))
233 
234 /* USART Rx FIFO Interrupt Trigger Level -------------------------------------------------------------------*/
235 /** @defgroup USART_RX_FIFO_Trigger_Level Definitions of USART Rx FIFO interrupts
236   * @{
237   */
238 #define USART_RXTL_01                 ((u32)0x00000000)
239 #define USART_RXTL_02                 ((u32)0x00000010)
240 #define USART_RXTL_04                 ((u32)0x00000020)
241 #define USART_RXTL_06                 ((u32)0x00000030)
242 
243 #define IS_USART_RXTL(RXTL)           ((RXTL == USART_RXTL_01) || \
244                                        (RXTL == USART_RXTL_02) || \
245                                        (RXTL == USART_RXTL_04) || \
246                                        (RXTL == USART_RXTL_06))
247 /**
248   * @}
249   */
250 
251 /* USART Tx FIFO Interrupt Trigger Level -------------------------------------------------------------------*/
252 /** @defgroup USART_TX_FIFO_Trigger_Level Definitions of USART Tx FIFO interrupts
253   * @{
254   */
255 #define USART_TXTL_00                 ((u32)0x00000000)
256 #define USART_TXTL_02                 ((u32)0x00000010)
257 #define USART_TXTL_04                 ((u32)0x00000020)
258 #define USART_TXTL_06                 ((u32)0x00000030)
259 
260 #define IS_USART_TXTL(TXTL)           ((TXTL == USART_TXTL_00) || \
261                                        (TXTL == USART_TXTL_02) || \
262                                        (TXTL == USART_TXTL_04) || \
263                                        (TXTL == USART_TXTL_06))
264 /**
265   * @}
266   */
267 
268 /* USART Interrupt definition ------------------------------------------------------------------------------*/
269 /** @defgroup USART_Interrupt_Enable Definitions of USART interrupt Enable bits
270   * @{
271   */
272 #define USART_INT_RXDR                ((u32)0x00000001)
273 #define USART_INT_TXDE                ((u32)0x00000002)
274 #define USART_INT_TXC                 ((u32)0x00000004)
275 #define USART_INT_OE                  ((u32)0x00000008)
276 #define USART_INT_PE                  ((u32)0x00000010)
277 #define USART_INT_FE                  ((u32)0x00000020)
278 #define USART_INT_BI                  ((u32)0x00000040)
279 #define USART_INT_RSADD               ((u32)0x00000080)
280 #define USART_INT_TOUT                ((u32)0x00000100)
281 #define USART_INT_CTS                 ((u32)0x00000200)
282 #if (LIBCFG_USART_LIN)
283 #define USART_INT_LBD                 ((u32)0x00000400)
284 #endif
285 
286 #if (LIBCFG_USART_LIN)
287 #define IS_USART_INT(INT)             ((((INT) & 0xFFFFF800) == 0) && ((INT) != 0))
288 #else
289 #define IS_USART_INT(INT)             ((((INT) & 0xFFFFFC00) == 0) && ((INT) != 0))
290 #endif
291 /**
292   * @}
293   */
294 
295 /* USART Flags ---------------------------------------------------------------------------------------------*/
296 /** @defgroup USART_Flag Definitions of USART flags
297   * @{
298   */
299 #define USART_FLAG_RXDNE              ((u32)0x00000001)
300 #define USART_FLAG_OE                 ((u32)0x00000002)
301 #define USART_FLAG_PE                 ((u32)0x00000004)
302 #define USART_FLAG_FE                 ((u32)0x00000008)
303 #define USART_FLAG_BI                 ((u32)0x00000010)
304 #define USART_FLAG_RXDR               ((u32)0x00000020)
305 #define USART_FLAG_TOUT               ((u32)0x00000040)
306 #define USART_FLAG_TXDE               ((u32)0x00000080)
307 #define USART_FLAG_TXC                ((u32)0x00000100)
308 #define USART_FLAG_RSADD              ((u32)0x00000200)
309 #define USART_FLAG_CTSC               ((u32)0x00000400)
310 #define USART_FLAG_CTSS               ((u32)0x00000800)
311 #if (LIBCFG_USART_LIN)
312 #define USART_FLAG_LBD                ((u32)0x00001000)
313 #define IS_FLAG_LBD(x)                (x == USART_FLAG_LBD)
314 #else
315 #define IS_FLAG_LBD(x)                (0)
316 #endif
317 
318 #define IS_USART_FLAG(FLAG)           ((FLAG == USART_FLAG_RXDNE) || (FLAG == USART_FLAG_OE)    || \
319                                        (FLAG == USART_FLAG_PE)    || (FLAG == USART_FLAG_FE)    || \
320                                        (FLAG == USART_FLAG_BI)    || (FLAG == USART_FLAG_RXDR)  || \
321                                        (FLAG == USART_FLAG_TOUT)  || (FLAG == USART_FLAG_TXDE)  || \
322                                        (FLAG == USART_FLAG_TXC)   || (FLAG == USART_FLAG_RSADD) || \
323                                        (FLAG == USART_FLAG_CTSC)  || (FLAG == USART_FLAG_CTSS)  || \
324                                        IS_FLAG_LBD(FLAG))
325 
326 #define IS_USART_CLEAR_FLAG(FLAG)     ((FLAG == USART_FLAG_OE)    || (FLAG == USART_FLAG_PE)    || \
327                                        (FLAG == USART_FLAG_FE)    || (FLAG == USART_FLAG_BI)    || \
328                                        (FLAG == USART_FLAG_TOUT)  || (FLAG == USART_FLAG_RSADD) || \
329                                        (FLAG == USART_FLAG_CTSC)  || IS_FLAG_LBD(FLAG))
330 /**
331   * @}
332   */
333 
334 /* USART RS485 definition ----------------------------------------------------------------------------------*/
335 /** @defgroup USART_RS485 Definitions of USART RS485
336   * @{
337   */
338 #define USART_RS485POLARITY_LOW                 ((u32)0x00000001)
339 #define USART_RS485POLARITY_HIGH                ((u32)0xFFFFFFFE)
340 
341 #define IS_USART_RS485_POLARITY(POLARITY)       ((POLARITY == USART_RS485POLARITY_LOW) || \
342                                                  (POLARITY == USART_RS485POLARITY_HIGH))
343 /**
344   * @}
345   */
346 
347 /*  USART LIN definition -----------------------------------------------------------------------------------*/
348 /** @defgroup USART_LIN Definitions of USART LIN
349   * @{
350   */
351 #if (LIBCFG_USART_LIN)
352 #define USART_LINSENDBREAK                      ((u32)0x00020000)
353 
354 #define USART_LINLENGTH_10BIT                   ((u32)0xFFFBFFFF)
355 #define USART_LINLENGTH_11BIT                   ((u32)0x00040000)
356 
357 #define IS_USART_LINLENGTH(LENGTH)              ((LENGTH == USART_LINLENGTH_10BIT) || \
358                                                  (LENGTH == USART_LINLENGTH_11BIT))
359 #endif
360 /**
361   * @}
362   */
363 
364 #define USART_FIFO_TX                           ((u32)0x00000001)
365 #define USART_FIFO_RX                           ((u32)0x00000002)
366 
367 #define IS_USART_FIFO_DIRECTION(DIRECTION)      ((DIRECTION == USART_FIFO_TX) || \
368                                                  (DIRECTION == USART_FIFO_RX))
369 
370 #define USART_STICK_LOW                         ((u32)0x00001000)
371 #define USART_STICK_HIGH                        ((u32)0xFFFFEFFF)
372 
373 #define IS_USART_STICK_PARITY(PARITY)           ((PARITY == USART_STICK_LOW) || (PARITY == USART_STICK_HIGH))
374 
375 #if (LIBCFG_PDMA)
376 #define USART_PDMAREQ_TX                        ((u32)0x00000040)
377 #define USART_PDMAREQ_RX                        ((u32)0x00000080)
378 
379 #define IS_USART_PDMA_REQ(REQ)                  (((REQ & 0xFFFFFF3F) == 0x0) && (REQ != 0x0))
380 #endif
381 
382 #define IS_USART(x)                             (IS_USART0(x) || \
383                                                  IS_USART1(x) || \
384                                                  IS_UART0(x)  || \
385                                                  IS_UART1(x)  || \
386                                                  IS_UART2(x)  || \
387                                                  IS_UART3(x))
388 #if (LIBCFG_NO_USART0)
389 #define IS_USART0(x)    (0)
390 #else
391 #define IS_USART0(x)    (x == HT_USART0)
392 #endif
393 #define IS_UART0(x)     (x == HT_UART0)
394 #if (LIBCFG_USART1)
395 #define IS_USART1(x)    (x == HT_USART1)
396 #else
397 #define IS_USART1(x)    (0)
398 #endif
399 #if (LIBCFG_UART1)
400 #define IS_UART1(x)     (x == HT_UART1)
401 #else
402 #define IS_UART1(x)     (0)
403 #endif
404 #if (LIBCFG_UART2)
405 #define IS_UART2(x)     (x == HT_UART2)
406 #else
407 #define IS_UART2(x)     (0)
408 #endif
409 #if (LIBCFG_UART3)
410 #define IS_UART3(x)     (x == HT_UART3)
411 #else
412 #define IS_UART3(x)     (0)
413 #endif
414 #define IS_USART_BAUDRATE(BAUDRATE)             ((BAUDRATE > 0) && (BAUDRATE < 0x0044AA21))
415 #define IS_USART_DATA(DATA)                     (DATA <= 0x1FF)
416 #define IS_USART_GUARD_TIME(TIME)               (TIME <= 0xFF)
417 #define IS_USART_IRDA_PRESCALER(PRESCALER)      (PRESCALER <= 0xFF)
418 #define IS_USART_TIMEOUT(TIMEOUT)               (TIMEOUT <= 0x7F)
419 #define IS_USART_ADDRESS_MATCH_VALUE(VALUE)     (VALUE <= 0xFF)
420 /**
421   * @}
422   */
423 
424 /* Exported functions --------------------------------------------------------------------------------------*/
425 /** @defgroup USART_Exported_Functions USART exported functions
426   * @{
427   */
428 #define USART_TxCmd(USARTx, NewState)              USART_TxRxCmd(USARTx, USART_CMD_TX, NewState)
429 #define USART_RxCmd(USARTx, NewState)              USART_TxRxCmd(USARTx, USART_CMD_RX, NewState)
430 
431 #define USART_TxPDMACmd(USARTx, NewState)          USART_PDMACmd(USARTx, USART_PDMAREQ_TX, NewState)
432 #define USART_RxPDMACmd(USARTx, NewState)          USART_PDMACmd(USARTx, USART_PDMAREQ_RX, NewState)
433 
434 #define USART_RXTLConfig(USARTx, USART_tl)         USART_TXRXTLConfig(USARTx, USART_CMD_RX, USART_tl)
435 #define USART_TXTLConfig(USARTx, USART_tl)         USART_TXRXTLConfig(USARTx, USART_CMD_TX, USART_tl)
436 
437 #define USART_IrDAInvtOutputCmd(USARTx, NewState)  USART_IrDAInvtCmd(USARTx, USART_CMD_OUT, NewState)
438 #define USART_IrDAInvtInputCmd(USARTx, NewState)   USART_IrDAInvtCmd(USARTx, USART_CMD_IN, NewState)
439 
440 void USART_DeInit(HT_USART_TypeDef* USARTx);
441 void USART_Init(HT_USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStructure);
442 void USART_StructInit(USART_InitTypeDef* USART_InitStructure);
443 void USART_SendData(HT_USART_TypeDef* USARTx, u16 Data);
444 u16 USART_ReceiveData(HT_USART_TypeDef* USARTx);
445 FlagStatus USART_GetFlagStatus(HT_USART_TypeDef* USARTx, u32 USART_FLAG_x);
446 FlagStatus USART_GetIntStatus(HT_USART_TypeDef* USARTx, u32 USART_FLAG_x);
447 void USART_ClearFlag(HT_USART_TypeDef* USARTx, u32 USART_Flag);
448 void USART_IntConfig(HT_USART_TypeDef* USARTx, u32 USART_INT_x, ControlStatus NewState);
449 void USART_TxRxCmd(HT_USART_TypeDef* USARTx,u32 TxRx, ControlStatus NewState);
450 #if (LIBCFG_PDMA)
451 void USART_PDMACmd(HT_USART_TypeDef* USARTx, u32 USART_PDMAREQ, ControlStatus NewState);
452 #endif
453 void USART_ForceBreakCmd(HT_USART_TypeDef* USARTx, ControlStatus NewState);
454 void USART_StickParityCmd(HT_USART_TypeDef* USARTx, ControlStatus NewState);
455 void USART_StickParityConfig(HT_USART_TypeDef* USARTx, u32 USART_StickParity);
456 
457 void USART_SetGuardTime(HT_USART_TypeDef* USARTx, u32 USART_GuardTime);
458 void USART_TXRXTLConfig(HT_USART_TypeDef* USARTx, u32 TxRx, u32 USART_tl);
459 void USART_SetTimeOutValue(HT_USART_TypeDef* USARTx, u32 USART_TimeOut);
460 void USART_FIFOReset(HT_USART_TypeDef* USARTx, u32 USART_FIFODirection);
461 u8 USART_GetFIFOStatus(HT_USART_TypeDef* USARTx, u32 USART_FIFODirection);
462 void USART_HardwareFlowControlCmd(HT_USART_TypeDef* USARTx, ControlStatus NewState);
463 
464 void USART_IrDACmd(HT_USART_TypeDef* USARTx, ControlStatus NewState);
465 void USART_IrDAConfig(HT_USART_TypeDef* USARTx, u32 USART_IrDAMode);
466 void USART_SetIrDAPrescaler(HT_USART_TypeDef* USARTx, u32 USART_IrDAPrescaler);
467 void USART_IrDADirectionConfig(HT_USART_TypeDef* USARTx, u32 USART_IrDADirection);
468 void USART_IrDAInvtCmd(HT_USART_TypeDef* USARTx, u32 inout, ControlStatus NewState);
469 
470 void USART_RS485TxEnablePolarityConfig(HT_USART_TypeDef* USARTx, u32 USART_RS485Polarity);
471 void USART_RS485NMMCmd(HT_USART_TypeDef* USARTx, ControlStatus NewState);
472 void USART_RS485AADCmd(HT_USART_TypeDef* USARTx, ControlStatus NewState);
473 void USART_SetAddressMatchValue(HT_USART_TypeDef* USARTx, u32 USART_AddressMatchValue);
474 
475 void USART_SynClockInit(HT_USART_TypeDef* USARTx, USART_SynClock_InitTypeDef* USART_SynClock_InitStruct);
476 void USART_SynClockStructInit(USART_SynClock_InitTypeDef* USART_SynClock_InitStruct);
477 
478 #if (LIBCFG_USART_LIN)
479 void USART_LIN_SendBreak(HT_USART_TypeDef* USARTx);
480 void USART_LIN_LengthSelect(HT_USART_TypeDef* USARTx, u32 USART_LIN_Length);
481 #endif
482 /**
483   * @}
484   */
485 
486 
487 /**
488   * @}
489   */
490 
491 /**
492   * @}
493   */
494 
495 #ifdef __cplusplus
496 }
497 #endif
498 
499 #endif
500