123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542 |
- /**
- *******************************************************************************
- * @file hc32_ll_usart.h
- * @brief This file contains all the functions prototypes of the USART(Universal
- * Synchronous/Asynchronous Receiver Transmitter) driver library.
- @verbatim
- Change Logs:
- Date Author Notes
- 2022-12-31 CDT First version
- @endverbatim
- *******************************************************************************
- * Copyright (C) 2022, Xiaohua Semiconductor Co., Ltd. All rights reserved.
- *
- * This software component is licensed by XHSC under BSD 3-Clause license
- * (the "License"); You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- *******************************************************************************
- */
- #ifndef __HC32_LL_USART_H__
- #define __HC32_LL_USART_H__
- /* C binding of definitions if building with C++ compiler */
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /*******************************************************************************
- * Include files
- ******************************************************************************/
- #include "hc32_ll_def.h"
- #include "hc32f4xx.h"
- #include "hc32f4xx_conf.h"
- /**
- * @addtogroup LL_Driver
- * @{
- */
- /**
- * @addtogroup LL_USART
- * @{
- */
- #if (LL_USART_ENABLE == DDL_ON)
- /*******************************************************************************
- * Global type definitions ('typedef')
- ******************************************************************************/
- /**
- * @defgroup USART_Global_Types USART Global Types
- * @{
- */
- /**
- * @brief clock synchronization mode initialization structure definition
- * @note The parameter(u32ClockDiv/u32CKOutput/u32Baudrate) is valid when clock source is the internal clock.
- */
- typedef struct {
- uint32_t u32ClockSrc; /*!< Clock Source.
- This parameter can be a value of @ref USART_Clock_Source */
- uint32_t u32ClockDiv; /*!< Clock division.
- This parameter can be a value of @ref USART_Clock_Division. */
- uint32_t u32Baudrate; /*!< USART baudrate.
- This parameter is valid when clock source is the internal clock. */
- uint32_t u32FirstBit; /*!< Significant bit.
- This parameter can be a value of @ref USART_First_Bit */
- uint32_t u32HWFlowControl; /*!< Hardware flow control.
- This parameter can be a value of @ref USART_Hardware_Flow_Control */
- } stc_usart_clocksync_init_t;
- /**
- * @brief UART multiple-processor initialization structure definition
- * @note The parameter(u32ClockDiv/u32CKOutput/u32Baudrate) is valid when clock source is the internal clock.
- */
- typedef struct {
- uint32_t u32ClockSrc; /*!< Clock Source.
- This parameter can be a value of @ref USART_Clock_Source */
- uint32_t u32ClockDiv; /*!< Clock division.
- This parameter can be a value of @ref USART_Clock_Division. */
- uint32_t u32CKOutput; /*!< USART_CK output selection.
- This parameter can be a value of @ref USART_CK_Output_Selection. */
- uint32_t u32Baudrate; /*!< USART baudrate.
- This parameter is valid when clock source is the internal clock. */
- uint32_t u32DataWidth; /*!< Data width.
- This parameter can be a value of @ref USART_Data_Width_Bit */
- uint32_t u32StopBit; /*!< Stop Bits.
- This parameter can be a value of @ref USART_Stop_Bit */
- uint32_t u32OverSampleBit; /*!< Oversampling Bits.
- This parameter can be a value of @ref USART_Over_Sample_Bit */
- uint32_t u32FirstBit; /*!< Significant bit.
- This parameter can be a value of @ref USART_First_Bit */
- uint32_t u32StartBitPolarity; /*!< Start Bit Detect Polarity.
- This parameter can be a value of @ref USART_Start_Bit_Polarity */
- uint32_t u32HWFlowControl; /*!< Hardware flow control.
- This parameter can be a value of @ref USART_Hardware_Flow_Control */
- } stc_usart_multiprocessor_init_t;
- /**
- * @brief UART mode initialization structure definition
- * @note The parameter(u32ClockDiv/u32CKOutput/u32Baudrate) is valid when clock source is the internal clock.
- */
- typedef struct {
- uint32_t u32ClockSrc; /*!< Clock Source.
- This parameter can be a value of @ref USART_Clock_Source */
- uint32_t u32ClockDiv; /*!< Clock division.
- This parameter can be a value of @ref USART_Clock_Division. */
- uint32_t u32CKOutput; /*!< USART_CK output selection.
- This parameter can be a value of @ref USART_CK_Output_Selection. */
- uint32_t u32Baudrate; /*!< USART baudrate.
- This parameter is valid when clock source is the internal clock. */
- uint32_t u32DataWidth; /*!< Data width.
- This parameter can be a value of @ref USART_Data_Width_Bit */
- uint32_t u32StopBit; /*!< Stop Bits.
- This parameter can be a value of @ref USART_Stop_Bit */
- uint32_t u32Parity; /*!< Parity format.
- This parameter can be a value of @ref USART_Parity_Control */
- uint32_t u32OverSampleBit; /*!< Oversampling Bits.
- This parameter can be a value of @ref USART_Over_Sample_Bit */
- uint32_t u32FirstBit; /*!< Significant bit.
- This parameter can be a value of @ref USART_First_Bit */
- uint32_t u32StartBitPolarity; /*!< Start Bit Detect Polarity.
- This parameter can be a value of @ref USART_Start_Bit_Polarity */
- uint32_t u32HWFlowControl; /*!< Hardware flow control.
- This parameter can be a value of @ref USART_Hardware_Flow_Control */
- } stc_usart_uart_init_t;
- /**
- * @brief LIN mode initialization structure definition
- * @note The parameter(u32ClockDiv/u32CKOutput/u32Baudrate) is valid when clock source is the internal clock.
- */
- typedef struct {
- uint32_t u32ClockSrc; /*!< Clock Source.
- This parameter can be a value of @ref USART_Clock_Source */
- uint32_t u32ClockDiv; /*!< Clock division.
- This parameter can be a value of @ref USART_Clock_Division. */
- uint32_t u32CKOutput; /*!< USART_CK output selection.
- This parameter can be a value of @ref USART_CK_Output_Selection. */
- uint32_t u32Baudrate; /*!< USART baudrate.
- This parameter is valid when clock source is the internal clock. */
- uint32_t u32OverSampleBit; /*!< Oversampling Bits.
- This parameter can be a value of @ref USART_Over_Sample_Bit */
- uint32_t u32BmcClockDiv; /*!< BMC clock division.
- This parameter can be a value of @ref USART_LIN_BMC_Clock_Division.
- @note The clock division is valid when clock source is the internal clock. */
- uint32_t u32DetectBreakLen; /*!< Detect break length.
- This parameter can be a value of @ref USART_LIN_Detect_Break_Length */
- uint32_t u32SendBreakLen; /*!< Send break length.
- This parameter can be a value of @ref USART_LIN_Send_Break_Length */
- uint32_t u32SendBreakMode; /*!< Send break mode.
- This parameter can be a value of @ref USART_LIN_Send_Break_Mode */
- } stc_usart_lin_init_t;
- /**
- * @brief Smartcard mode initialization structure definition
- */
- typedef struct {
- uint32_t u32ClockDiv; /*!< Clock division. This parameter can be a value of @ref USART_Clock_Division.
- @note This parameter is valid when clock source is the internal clock. */
- uint32_t u32CKOutput; /*!< USART_CK output selection. This parameter can be a value of @ref USART_CK_Output_Selection.
- @note This parameter is valid when clock source is the internal clock. */
- uint32_t u32Baudrate; /*!< USART baudrate.
- This parameter is calculated according with smartcard default ETU and clock. */
- uint32_t u32StopBit; /*!< Stop Bits.
- This parameter can be a value of @ref USART_Stop_Bit */
- uint32_t u32FirstBit; /*!< Significant bit.
- This parameter can be a value of @ref USART_First_Bit */
- } stc_usart_smartcard_init_t;
- /**
- * @}
- */
- /*******************************************************************************
- * Global pre-processor symbols/macros ('#define')
- ******************************************************************************/
- /**
- * @defgroup USART_Global_Macros USART Global Macros
- * @{
- */
- /**
- * @defgroup USART_Flag USART Flag
- * @{
- */
- #define USART_FLAG_RX_FULL (USART_SR_RXNE) /*!< Receive data register not empty flag */
- #define USART_FLAG_OVERRUN (USART_SR_ORE) /*!< Overrun error flag */
- #define USART_FLAG_TX_CPLT (USART_SR_TC) /*!< Transmission complete flag */
- #define USART_FLAG_TX_EMPTY (USART_SR_TXE) /*!< Transmit data register empty flag */
- #define USART_FLAG_FRAME_ERR (USART_SR_FE) /*!< Framing error flag */
- #define USART_FLAG_PARITY_ERR (USART_SR_PE) /*!< Parity error flag */
- #define USART_FLAG_MX_PROCESSOR (USART_SR_MPB) /*!< Receive processor ID flag */
- #define USART_FLAG_RX_TIMEOUT (USART_SR_RTOF) /*!< Receive timeout flag */
- #define USART_FLAG_LIN_ERR (USART_SR_BE) /*!< LIN bus error flag */
- #define USART_FLAG_LIN_WKUP (USART_SR_WKUP) /*!< LIN wakeup signal detection flag */
- #define USART_FLAG_LIN_BREAK (USART_SR_LBD) /*!< LIN break signal detection flag */
- #define USART_FLAG_TX_END (USART_SR_TEND) /*!< Transmission complete flag (can be cleared) */
- #define USART_FLAG_ALL (USART_FLAG_RX_FULL | USART_FLAG_FRAME_ERR | USART_FLAG_TX_EMPTY | \
- USART_FLAG_OVERRUN | USART_FLAG_PARITY_ERR | USART_FLAG_RX_TIMEOUT | \
- USART_FLAG_TX_CPLT | USART_FLAG_LIN_BREAK | USART_FLAG_LIN_WKUP | \
- USART_FLAG_LIN_ERR | USART_FLAG_MX_PROCESSOR | USART_FLAG_TX_END)
- /**
- * @}
- */
- /**
- * @defgroup USART_Transmission_Type USART Transmission Type
- * @{
- */
- #define USART_TRANS_DATA (0UL)
- #define USART_TRANS_ID (USART_DR_MPID)
- /**
- * @}
- */
- /**
- * @defgroup USART_Function USART Function
- * @{
- */
- #define USART_TX (USART_CR1_TE) /*!< USART TX function */
- #define USART_RX (USART_CR1_RE) /*!< USART RX function */
- #define USART_INT_RX (USART_CR1_RIE) /*!< USART receive data register not empty && receive error interrupt */
- #define USART_INT_TX_CPLT (USART_CR1_TCIE) /*!< USART transmission complete interrupt */
- #define USART_INT_TX_EMPTY (USART_CR1_TXEIE) /*!< USART transmit data register empty interrupt */
- #define USART_RX_TIMEOUT (USART_CR1_RTOE) /*!< USART RX timerout function */
- #define USART_INT_RX_TIMEOUT (USART_CR1_RTOIE) /*!< USART RX timerout interrupt */
- #define USART_INT_TX_END (USART_CR1_TENDIE) /*!< USART transmission complete interrupt */
- #define USART_LIN (USART_CR2_LINEN << 16UL) /*!< USART LIN function */
- #define USART_LIN_WKUP (USART_CR2_WKUPE << 16UL) /*!< USART LIN wakeup signal detect function */
- #define USART_LIN_ERR (USART_CR2_BEE << 16UL) /*!< USART LIN bus error detect function */
- #define USART_LIN_BREAK (USART_CR2_LBDL << 16UL) /*!< USART LIN bus break field detect function */
- #define USART_LIN_INT_ERR (USART_CR2_BEIE << 16UL) /*!< USART LIN bus error detect interrupt function */
- #define USART_LIN_INT_BREAK (USART_CR2_LBDIE << 16UL) /*!< USART LIN bus break field detect interrupt function */
- #define USART_LIN_INT_WKUP (USART_CR2_WKUPIE << 16UL) /*!< USART LIN bus wakeup signal detect interrupt function */
- #define USART_FUNC_ALL (USART_TX | USART_RX | USART_INT_RX | USART_INT_TX_CPLT | USART_RX_TIMEOUT | \
- USART_INT_RX_TIMEOUT | USART_INT_TX_EMPTY | USART_LIN | USART_LIN_WKUP | \
- USART_LIN_ERR | USART_LIN_BREAK | USART_LIN_INT_ERR | USART_LIN_INT_BREAK | \
- USART_LIN_INT_WKUP | USART_INT_TX_END)
- /**
- * @}
- */
- /**
- * @defgroup USART_Parity_Control USART Parity Control
- * @{
- */
- #define USART_PARITY_NONE (0UL) /*!< Parity control disabled */
- #define USART_PARITY_EVEN (USART_CR1_PCE) /*!< Parity control enabled and Even Parity is selected */
- #define USART_PARITY_ODD (USART_CR1_PCE | \
- USART_CR1_PS) /*!< Parity control enabled and Odd Parity is selected */
- /**
- * @}
- */
- /**
- * @defgroup USART_Data_Width_Bit USART Data Width Bit
- * @{
- */
- #define USART_DATA_WIDTH_8BIT (0UL) /*!< 8 bits */
- #define USART_DATA_WIDTH_9BIT (USART_CR1_M) /*!< 9 bits */
- /**
- * @}
- */
- /**
- * @defgroup USART_Over_Sample_Bit USART Over Sample Bit
- * @{
- */
- #define USART_OVER_SAMPLE_16BIT (0UL) /*!< Oversampling by 16 bits */
- #define USART_OVER_SAMPLE_8BIT (USART_CR1_OVER8) /*!< Oversampling by 8 bits */
- /**
- * @}
- */
- /**
- * @defgroup USART_First_Bit USART First Bit
- * @{
- */
- #define USART_FIRST_BIT_LSB (0UL) /*!< LSB(Least Significant Bit) */
- #define USART_FIRST_BIT_MSB (USART_CR1_ML) /*!< MSB(Most Significant Bit) */
- /**
- * @}
- */
- /**
- * @defgroup USART_Start_Bit_Polarity USART Start Bit Polarity
- * @{
- */
- #define USART_START_BIT_LOW (0UL) /*!< Detect RX pin low level */
- #define USART_START_BIT_FALLING (USART_CR1_SBS) /*!< Detect RX pin falling edge */
- /**
- * @}
- */
- /**
- * @defgroup USART_Clock_Source USART Clock Source
- * @{
- */
- #define USART_CLK_SRC_INTERNCLK (0UL) /*!< Select internal clock source and don't output clock */
- #define USART_CLK_SRC_EXTCLK (USART_CR2_CLKC_1) /*!< Select external clock source. */
- /**
- * @}
- */
- /**
- * @defgroup USART_CK_Output_Selection USART_CK Output Selection
- * @{
- */
- #define USART_CK_OUTPUT_DISABLE (0UL) /*!< Disable USART_CK output */
- #define USART_CK_OUTPUT_ENABLE (USART_CR2_CLKC_0) /*!< Enable USART_CK output. */
- /**
- * @}
- */
- /**
- * @defgroup USART_Stop_Bit USART Stop Bit
- * @{
- */
- #define USART_STOPBIT_1BIT (0UL) /*!< 1 stop bit */
- #define USART_STOPBIT_2BIT (USART_CR2_STOP) /*!< 2 stop bit */
- /**
- * @}
- */
- /**
- * @defgroup USART_Hardware_Flow_Control USART Hardware Flow Control
- * @{
- */
- #define USART_HW_FLOWCTRL_CTS (USART_CR3_CTSE) /*!< USART hardware flow control CTS mode */
- #define USART_HW_FLOWCTRL_RTS (USART_CR3_CTSE >> 1U) /*!< USART hardware flow control RTS mode */
- #define USART_HW_FLOWCTRL_NONE (0UL) /*!< Disable USART hardware flow controle */
- #define USART_HW_FLOWCTRL_RTS_CTS (USART_HW_FLOWCTRL_CTS | \
- USART_HW_FLOWCTRL_RTS) /*!< USART hardware flow control RTS and CTS mode */
- /**
- * @}
- */
- /**
- * @defgroup USART_Clock_Division USART Clock Division
- * @{
- */
- #define USART_CLK_DIV1 (0UL) /*!< CLK */
- #define USART_CLK_DIV4 (1UL) /*!< CLK/4 */
- #define USART_CLK_DIV16 (2UL) /*!< CLK/16 */
- #define USART_CLK_DIV64 (3UL) /*!< CLK/64 */
- #define USART_CLK_DIV128 (0UL | USART_PR_ULBREN) /*!< CLK/128 */
- #define USART_CLK_DIV256 (1UL | USART_PR_ULBREN) /*!< CLK/256 */
- #define USART_CLK_DIV512 (2UL | USART_PR_ULBREN) /*!< CLK/512 */
- #define USART_CLK_DIV1024 (3UL | USART_PR_ULBREN) /*!< CLK/1024 */
- /**
- * @}
- */
- /**
- * @defgroup USART_Max_Timeout USART Max Timeout
- * @{
- */
- #define USART_MAX_TIMEOUT (0xFFFFFFFFUL)
- /**
- * @}
- */
- /**
- * @defgroup USART_Smartcard_ETU_Clock USART Smartcard ETU Clock
- * @{
- */
- #define USART_SC_ETU_CLK32 (0UL << USART_CR3_BCN_POS) /*!< 1 etu = 32/f */
- #define USART_SC_ETU_CLK64 (1UL << USART_CR3_BCN_POS) /*!< 1 etu = 64/f */
- #define USART_SC_ETU_CLK128 (2UL << USART_CR3_BCN_POS) /*!< 1 etu = 128/f */
- #define USART_SC_ETU_CLK256 (3UL << USART_CR3_BCN_POS) /*!< 1 etu = 256/f */
- #define USART_SC_ETU_CLK372 (6UL << USART_CR3_BCN_POS) /*!< 1 etu = 372/f */
- /**
- * @}
- */
- /**
- * @defgroup USART_Stop_Mode_Noise_Filter_Width_Level USART Stop Mode Noise Filter Width Level
- * @{
- */
- #define USART_STOP_MD_FILTER_LVL1 (0UL) /*!< Filter width level 1 */
- #define USART_STOP_MD_FILTER_LVL2 (PERIC_USART1_NFC_USASRT1_NFS_0) /*!< Filter width level 2 */
- #define USART_STOP_MD_FILTER_LVL3 (PERIC_USART1_NFC_USASRT1_NFS_1) /*!< Filter width level 3 */
- #define USART_STOP_MD_FILTER_LVL4 (PERIC_USART1_NFC_USASRT1_NFS) /*!< Filter width level 4 */
- /**
- * @}
- */
- /**
- * @defgroup USART_LIN_BMC_Clock_Division USART LIN Baudrate Measure Counter Clock Division
- * @{
- */
- #define USART_LIN_BMC_CLK_DIV1 (0UL) /*!< CLK */
- #define USART_LIN_BMC_CLK_DIV2 (USART_PR_LBMPSC_0) /*!< CLK/2 */
- #define USART_LIN_BMC_CLK_DIV4 (USART_PR_LBMPSC_1) /*!< CLK/4 */
- #define USART_LIN_BMC_CLK_DIV8 (USART_PR_LBMPSC) /*!< CLK/8 */
- /**
- * @}
- */
- /**
- * @defgroup USART_LIN_Send_Break_Mode USART LIN Send Break Mode
- * @{
- */
- #define USART_LIN_SEND_BREAK_MD_SBK (0UL) /*!< Start send break after USART_CR2 SBK bit set 1 value */
- #define USART_LIN_SEND_BREAK_MD_TDR (USART_CR2_SBKM) /*!< Start send break after USART_DR TDR write 0x00 value */
- /**
- * @}
- */
- /**
- * @defgroup USART_LIN_Detect_Break_Length USART LIN Detect Break Length
- * @{
- */
- #define USART_LIN_DETECT_BREAK_10BIT (0UL) /*!< Detect break 10-bit */
- #define USART_LIN_DETECT_BREAK_11BIT (USART_CR2_LBDL) /*!< Detect break 11-bit */
- /**
- * @}
- */
- /**
- * @defgroup USART_LIN_Send_Break_Length USART LIN Send Break Length
- * @{
- */
- #define USART_LIN_SEND_BREAK_10BIT (0UL) /*!< Send break 10-bit */
- #define USART_LIN_SEND_BREAK_11BIT (USART_CR2_SBKL_0) /*!< Send break 11-bit */
- #define USART_LIN_SEND_BREAK_13BIT (USART_CR2_SBKL_1) /*!< Send break 13-bit */
- #define USART_LIN_SEND_BREAK_14BIT (USART_CR2_SBKL) /*!< Send break 14-bit */
- /**
- * @}
- */
- /**
- * @}
- */
- /*******************************************************************************
- * Global variable definitions ('extern')
- ******************************************************************************/
- /*******************************************************************************
- Global function prototypes (definition in C source)
- ******************************************************************************/
- /**
- * @addtogroup USART_Global_Functions
- * @{
- */
- int32_t USART_ClockSync_StructInit(stc_usart_clocksync_init_t *pstcClockSyncInit);
- int32_t USART_ClockSync_Init(CM_USART_TypeDef *USARTx,
- const stc_usart_clocksync_init_t *pstcClockSyncInit, float32_t *pf32Error);
- int32_t USART_MultiProcessor_StructInit(stc_usart_multiprocessor_init_t *pstcMultiProcessorInit);
- int32_t USART_MultiProcessor_Init(CM_USART_TypeDef *USARTx,
- const stc_usart_multiprocessor_init_t *pstcMultiProcessorInit, float32_t *pf32Error);
- int32_t USART_UART_StructInit(stc_usart_uart_init_t *pstcUartInit);
- int32_t USART_UART_Init(CM_USART_TypeDef *USARTx, const stc_usart_uart_init_t *pstcUartInit, float32_t *pf32Error);
- int32_t USART_HalfDuplex_Init(CM_USART_TypeDef *USARTx,
- const stc_usart_uart_init_t *pstcUartInit, float32_t *pf32Error);
- int32_t USART_LIN_StructInit(stc_usart_lin_init_t *pstcLinInit);
- int32_t USART_LIN_Init(CM_USART_TypeDef *USARTx, const stc_usart_lin_init_t *pstcLinInit, float32_t *pf32Error);
- int32_t USART_SmartCard_StructInit(stc_usart_smartcard_init_t *pstcSmartCardInit);
- int32_t USART_SmartCard_Init(CM_USART_TypeDef *USARTx,
- const stc_usart_smartcard_init_t *pstcSmartCardInit, float32_t *pf32Error);
- void USART_DeInit(CM_USART_TypeDef *USARTx);
- void USART_FuncCmd(CM_USART_TypeDef *USARTx, uint32_t u32Func, en_functional_state_t enNewState);
- en_flag_status_t USART_GetStatus(const CM_USART_TypeDef *USARTx, uint32_t u32Flag);
- void USART_ClearStatus(CM_USART_TypeDef *USARTx, uint32_t u32Flag);
- void USART_SetParity(CM_USART_TypeDef *USARTx, uint32_t u32Parity);
- void USART_SetFirstBit(CM_USART_TypeDef *USARTx, uint32_t u32FirstBit);
- void USART_SetStopBit(CM_USART_TypeDef *USARTx, uint32_t u32StopBit);
- void USART_SetDataWidth(CM_USART_TypeDef *USARTx, uint32_t u32DataWidth);
- void USART_SetOverSampleBit(CM_USART_TypeDef *USARTx, uint32_t u32OverSampleBit);
- void USART_SetStartBitPolarity(CM_USART_TypeDef *USARTx, uint32_t u32Polarity);
- void USART_SetTransType(CM_USART_TypeDef *USARTx, uint32_t u32Type);
- void USART_SetClockDiv(CM_USART_TypeDef *USARTx, uint32_t u32ClockDiv);
- uint32_t USART_GetClockDiv(const CM_USART_TypeDef *USARTx);
- void USART_SetClockSrc(CM_USART_TypeDef *USARTx, uint32_t u32ClockSrc);
- uint32_t USART_GetClockSrc(const CM_USART_TypeDef *USARTx);
- void USART_FilterCmd(CM_USART_TypeDef *USARTx, en_functional_state_t enNewState);
- void USART_SilenceCmd(CM_USART_TypeDef *USARTx, en_functional_state_t enNewState);
- void USART_SetHWFlowControl(CM_USART_TypeDef *USARTx, uint32_t u32HWFlowControl);
- uint16_t USART_ReadData(const CM_USART_TypeDef *USARTx);
- void USART_WriteData(CM_USART_TypeDef *USARTx, uint16_t u16Data);
- void USART_WriteID(CM_USART_TypeDef *USARTx, uint16_t u16ID);
- int32_t USART_SetBaudrate(CM_USART_TypeDef *USARTx, uint32_t u32Baudrate, float32_t *pf32Error);
- void USART_SmartCard_SetEtuClock(CM_USART_TypeDef *USARTx, uint32_t u32EtuClock);
- void USART_StopModeNoiseFilterCmd(const CM_USART_TypeDef *USARTx, en_functional_state_t enNewState);
- void USART_SetStopModeNoiseFilter(const CM_USART_TypeDef *USARTx, uint32_t u32Level);
- void USART_LIN_LoopbackCmd(CM_USART_TypeDef *USARTx, en_functional_state_t enNewState);
- void USART_LIN_SetBmcClockDiv(CM_USART_TypeDef *USARTx, uint32_t u32ClockDiv);
- void USART_LIN_RequestBreakSending(CM_USART_TypeDef *USARTx);
- en_flag_status_t USART_LIN_GetRequestBreakStatus(const CM_USART_TypeDef *USARTx);
- void USART_LIN_SetBreakMode(CM_USART_TypeDef *USARTx, uint32_t u32Mode);
- uint32_t USART_LIN_GetBreakMode(const CM_USART_TypeDef *USARTx);
- uint32_t USART_LIN_GetMeasureCount(const CM_USART_TypeDef *USARTx);
- uint32_t USART_LIN_GetMeasureBaudrate(const CM_USART_TypeDef *USARTx);
- void USART_LIN_SetDetectBreakLen(CM_USART_TypeDef *USARTx, uint32_t u32Len);
- void USART_LIN_SetSendBreakLen(CM_USART_TypeDef *USARTx, uint32_t u32Len);
- int32_t USART_UART_Trans(CM_USART_TypeDef *USARTx, const void *pvBuf, uint32_t u32Len, uint32_t u32Timeout);
- int32_t USART_UART_Receive(const CM_USART_TypeDef *USARTx, void *pvBuf, uint32_t u32Len, uint32_t u32Timeout);
- int32_t USART_ClockSync_Trans(CM_USART_TypeDef *USARTx, const uint8_t au8Buf[], uint32_t u32Len, uint32_t u32Timeout);
- int32_t USART_ClockSync_Receive(CM_USART_TypeDef *USARTx, uint8_t au8Buf[], uint32_t u32Len, uint32_t u32Timeout);
- int32_t USART_ClockSync_TransReceive(CM_USART_TypeDef *USARTx, const uint8_t au8TxBuf[], uint8_t au8RxBuf[],
- uint32_t u32Len, uint32_t u32Timeout);
- /**
- * @}
- */
- #endif /* LL_USART_ENABLE */
- /**
- * @}
- */
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __HC32_LL_USART_H__ */
- /*******************************************************************************
- * EOF (not truncated)
- ******************************************************************************/
|