HwA_Flagchip_FC7240/Inc/HwA_fcuart.h

831 lines
21 KiB
C

/**
* @file HwA_fcuart.h
* @author Flagchip
* @brief FC7xxx FCUart register API
* @version 0.1.0
* @date 2024-01-14
*
* @copyright Copyright (c) 2022 Flagchip Semiconductors Co., Ltd.
*
*/
/********************************************************************************
* Revision History:
*
* Version Date Initials CR# Descriptions
* --------- ---------- ------------ ---------- ---------------
* 0.1.0 2024-01-14 Flagchip0122 N/A FC7xxx internal release version
********************************************************************************/
#ifndef _HWA_FCUART_H_
#define _HWA_FCUART_H_
#include "device_header.h"
/**
* @addtogroup HwA_fcuart
* @{
*/
/********* Local typedef ************/
/**
* @brief UART STAT register flag
*
*/
typedef enum
{
FCUART_STAT_LBKDIF = (int32_t)FCUART_STAT_LBKDIF_MASK, /**< FCUART_STAT_LBKDIF LIN Break Detect Interrupt Flag, w1c */
FCUART_STAT_RPAEIF = (int32_t)FCUART_STAT_RPAEIF_MASK, /**< FCUART_STAT_RPAEIF RXD Pin Active Edge Interrupt Flag, w1c */
FCUART_STAT_MSBF = (int32_t)FCUART_STAT_MSBF_MASK, /**< FCUART_STAT_MSBF MSB First, RW */
FCUART_STAT_RXINV = (int32_t)FCUART_STAT_RXINV_MASK, /**< FCUART_STAT_RXINV Receive Data Inversion, RW */
FCUART_STAT_RWUID = (int32_t)FCUART_STAT_RWUID_MASK, /**< FCUART_STAT_RWUID Receive Wake Up Idle Detect, RW */
FCUART_STAT_BCGL = (int32_t)FCUART_STAT_BCGL_MASK, /**< FCUART_STAT_BCGL Break Character Generation Length, RW */
FCUART_STAT_LBKDE = (int32_t)FCUART_STAT_LBKDE_MASK, /**< FCUART_STAT_LBKDE LIN Break Detection Enable, RW */
FCUART_STAT_RAF = (int32_t)FCUART_STAT_RAF_MASK, /**< FCUART_STAT_RAF Receiver Active Flag, RO */
FCUART_STAT_TDREF = (int32_t)FCUART_STAT_TDREF_MASK, /**< FCUART_STAT_TDREF Transmit Data Register Empty Flag, RO */
FCUART_STAT_TCF = (int32_t)FCUART_STAT_TCF_MASK, /**< FCUART_STAT_TCF Transmission Complete Flag, RO */
FCUART_STAT_RDRFF = (int32_t)FCUART_STAT_RDRFF_MASK, /**< FCUART_STAT_RDRFF Receive Data Register Full Flag, RO */
FCUART_STAT_IDLEF = (int32_t)FCUART_STAT_IDLEF_MASK, /**< FCUART_STAT_IDLEF Idle Line Flag, w1c */
FCUART_STAT_RORF = (int32_t)FCUART_STAT_RORF_MASK, /**< FCUART_STAT_RORF Receiver Overrun Flag, w1c */
FCUART_STAT_NF = (int32_t)FCUART_STAT_NF_MASK, /**< FCUART_STAT_NF Noise Flag, w1c */
FCUART_STAT_FEF = (int32_t)FCUART_STAT_FEF_MASK, /**< FCUART_STAT_FEF Frame Error Flag, w1c */
FCUART_STAT_PEF = (int32_t)FCUART_STAT_PEF_MASK, /**< FCUART_STAT_PEF Parity Error Flag, w1c */
FCUART_STAT_M0F = (int32_t)FCUART_STAT_M0F_MASK, /**< FCUART_STAT_M0F Match address 0 Flag, w1c */
FCUART_STAT_M1F = (int32_t)FCUART_STAT_M1F_MASK, /**< FCUART_STAT_M1F Match address 1 Flag, w1c */
FCUART_STAT_RPEF = (int32_t)FCUART_STAT_RPEF_MASK, /**< FCUART_STAT_RPEF Receive Data Parity Error Flag, w1c */
FCUART_STAT_TPEF = (int32_t)FCUART_STAT_TPEF_MASK /**< FCUART_STAT_TPEF Transmit Data Parity Error Flag, w1c */
} FCUART_StatType;
/**
* @brief UART data bit length mode
*
*/
typedef enum
{
UART_BITMODE_8 = 0, /**< UART_BITMODE_8 */
UART_BITMODE_9 /**< UART_BITMODE_9 */
} FCUART_BitModeType;
/**
* @brief UART stop bits number
*
*/
typedef enum
{
UART_STOPBIT_NUM_1 = 0, /**< UART_STOPBIT_NUM_1 */
UART_STOPBIT_NUM_2 /**< UART_STOPBIT_NUM_2 */
} FCUART_StopBitNumType;
/**
* @brief UART parity check type
*
*/
typedef enum
{
UART_PARITY_EVEN = 0, /**< UART_PARITY_EVEN */
UART_PARITY_ODD /**< UART_PARITY_ODD */
} FCUART_ParityType;
/********* Local inline function ************/
/**
* @brief Get Stat Flag
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_SetSoftWareReset(FCUART_Type *pUart)
{
pUart->RST |= FCUART_RST_RST_MASK;
pUart->RST &= ~FCUART_RST_RST_MASK;
}
/**
* @brief Get Stat Flag
*
* @param pUart UART instance value
* @param eStatusType stat type
* @return FCUART STAT status flag
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetStatus(FCUART_Type *pUart, FCUART_StatType eStatusType)
{
return (pUart->STAT & (uint32_t)eStatusType);
}
/**
* @brief Clear Stat Flag
*
* @param pUart UART instance value
* @param u32StatusType stat type
*/
LOCAL_INLINE void FCUART_HWA_ClearStatus(FCUART_Type *pUart, uint32_t u32StatusType)
{
pUart->STAT |= u32StatusType;
}
/**
* @brief Enable Interrupt
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_EnableInterrupt(FCUART_Type *pUart, uint32 u32Value)
{
pUart->CTRL |= u32Value; /* Interrupt Enable */
}
/**
* @brief Disable Interrupt
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_DisableInterrupt(FCUART_Type *pUart, uint32 u32Value)
{
pUart->CTRL &= ~u32Value; /* Interrupt Disable */
}
/**
* @brief Enable Receive Interrupt
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_EnableReceiveInterrupt(FCUART_Type *pUart)
{
pUart->CTRL |= FCUART_CTRL_RIE_MASK; /* Receive Interrupt Enable */
}
/**
* @brief Disable Receive Interrupt
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_DisableReceiveInterrupt(FCUART_Type *pUart)
{
pUart->CTRL &= ~FCUART_CTRL_RIE_MASK; /* Receive Interrupt Enable */
}
/**
* @brief Enable Error Interrupt
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_EnableErrorInterrupt(FCUART_Type *pUart)
{
pUart->CTRL |= FCUART_CTRL_ORIE_MASK | /* Overrun Interrupt Enable */
FCUART_CTRL_NEIE_MASK | /* Noise Error Interrupt Enable */
FCUART_CTRL_FEIE_MASK | /* Frame Error Interrupt Enable */
FCUART_CTRL_PEIE_MASK; /* Parity Error Interrupt Enable */
}
/**
* @brief Disable Error Interrupt
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_DisableErrorInterrupt(FCUART_Type *pUart)
{
pUart->CTRL &= ~(FCUART_CTRL_ORIE_MASK | /* Overrun Interrupt Enable */
FCUART_CTRL_NEIE_MASK | /* Noise Error Interrupt Enable */
FCUART_CTRL_FEIE_MASK | /* Frame Error Interrupt Enable */
FCUART_CTRL_PEIE_MASK); /* Parity Error Interrupt Enable */
}
/**
* @brief Set FCUART Ctrl register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_SetCtrl(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->CTRL = u32Value;
}
/**
* @brief Get FCUART Ctrl register
*
* @param pUart UART instance value
* @return Register value
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetCtrl(FCUART_Type *pUart)
{
return pUart->CTRL;
}
/**
* @brief Attach FCUART Ctrl register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_AttachCtrl(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->CTRL |= u32Value;
}
/**
* @brief Set FCUART Baud register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_SetBaud(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->BAUD = u32Value;
}
/**
* @brief Get FCUART baud register
*
* @param pUart UART instance value
* @return Register value
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetBaud(FCUART_Type *pUart)
{
return pUart->BAUD;
}
/**
* @brief Attach FCUART Baud register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_AttachBaud(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->BAUD |= u32Value;
}
/**
* @brief Set FCUART Fifo register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_SetFifo(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->FIFO = u32Value;
}
/**
* @brief Get FCUART fifo register
*
* @param pUart UART instance value
* @return Register value
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetFifo(FCUART_Type *pUart)
{
return pUart->FIFO;
}
/**
* @brief Get FCUART fifo register
*
* @param pUart UART instance value
* @return Register value
*/
LOCAL_INLINE bool FCUART_HWA_GetEnStatusRxFifo(FCUART_Type *pUart)
{
return ((((pUart->FIFO & FCUART_FIFO_RXFEN_MASK) >> FCUART_FIFO_RXFEN_SHIFT) == 1U) ? true: false);
}
/**
* @brief Get FCUART fifo register
*
* @param pUart UART instance value
* @return Register value
*/
LOCAL_INLINE bool FCUART_HWA_GetEnStatusTxFifo(FCUART_Type *pUart)
{
return ((((pUart->FIFO & FCUART_FIFO_TXFEN_MASK) >> FCUART_FIFO_TXFEN_SHIFT) == 1U) ? true: false);
}
/**
* @brief Attach FCUART Fifo register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_AttachFifo(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->FIFO |= u32Value;
}
/**
* @brief Set FCUART WaterMark register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_SetWaterMark(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->WATERMARK = u32Value;
}
/**
* @brief Get FCUART Rx WaterMark
*
* @param pUart UART instance value
* @return Rxcount value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetRxWaterMark(FCUART_Type *pUart)
{
return ((uint8_t)(((pUart->WATERMARK) & FCUART_WATERMARK_RXWATER_MASK) >> FCUART_WATERMARK_RXWATER_SHIFT));
}
/**
* @brief Get FCUART Tx WaterMark
*
* @param pUart UART instance value
* @return Rxcount value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetTxWaterMark(FCUART_Type *pUart)
{
return ((uint8_t)(((pUart->WATERMARK) & FCUART_WATERMARK_TXWATER_MASK) >> FCUART_WATERMARK_TXWATER_SHIFT));
}
/**
* @brief Get FCUART WaterMark Rxcount
*
* @param pUart UART instance value
* @return Rxcount value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetFifoRxCount(FCUART_Type *pUart)
{
return ((uint8_t)(((pUart->WATERMARK) & FCUART_WATERMARK_RXCOUNT_MASK) >> FCUART_WATERMARK_RXCOUNT_SHIFT));
}
/**
* @brief Get FCUART WaterMark Txcount
*
* @param pUart UART instance value
* @return Rxcount value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetFifoTxCount(FCUART_Type *pUart)
{
return ((uint8_t)(((pUart->WATERMARK) & FCUART_WATERMARK_TXCOUNT_MASK) >> FCUART_WATERMARK_TXCOUNT_SHIFT));
}
/**
* @brief Attach FCUART WaterMark register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_AttachWaterMark(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->WATERMARK |= u32Value;
}
/**
* @brief Set FCUART Match register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_SetMatch(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->MATCH = u32Value;
}
/**
* @brief Attach FCUART Match register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_AttachMatch(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->MATCH |= u32Value;
}
/**
* @brief Get FCUART Match register
*
* @param pUart UART instance value
* @return Register value
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetMatch(FCUART_Type *pUart)
{
return pUart->MATCH;
}
/**
* @brief Read FCUART STAT register
*
* @param pUart UART instance value
* @return STAT read value
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetSTAT(FCUART_Type *pUart)
{
return pUart->STAT;
}
/**
* @brief Write 1 Clear FCUART STAT register
*
* @param pUart UART instance value
* @param u32Value written value
*/
LOCAL_INLINE void FCUART_HWA_WriteClearSTAT(FCUART_Type *pUart, uint32_t u32Value)
{
pUart->STAT |= u32Value;
}
/**
* @brief Set Bit Mode and Parity
*
* @param pUart UART instance value
* @param eBitMode is bit mode, 8 or 9 bits
*/
LOCAL_INLINE void FCUART_HWA_SetBitMode(FCUART_Type *pUart, FCUART_BitModeType eBitMode)
{
uint32_t u32RegVal = pUart->CTRL;
pUart->CTRL = ((u32RegVal & (~ FCUART_CTRL_BMSEL_MASK)) | FCUART_CTRL_BMSEL(eBitMode));
}
/**
* @brief Set Bit Mode and Parity
*
* @param pUart UART instance value
* @param bParityEnable If enable Parity, set 1U, or set 0U
* @param eParityType Parity type, odd-even
*/
LOCAL_INLINE void FCUART_HWA_SetParity(FCUART_Type *pUart, FCUART_ParityType eParityType, bool bParityEnable)
{
uint32_t u32RegVal = pUart->CTRL;
pUart->CTRL = ((u32RegVal & (~ FCUART_CTRL_PE_MASK | FCUART_CTRL_PT_MASK)) |
FCUART_CTRL_PE(bParityEnable) |
FCUART_CTRL_PT(eParityType) );
}
/**
* @brief Set Bit Mode and Parity
*
* @param pUart UART instance value
* @param eStopBit stop bits number 1 or 2 bits
*/
LOCAL_INLINE void FCUART_HWA_SetStopBit(FCUART_Type *pUart, FCUART_StopBitNumType eStopBit)
{
uint32_t u32RegVal = pUart->BAUD;
pUart->BAUD = ((u32RegVal & (~ FCUART_BAUD_SBNS_MASK)) | FCUART_BAUD_SBNS(eStopBit));
}
/**
* @brief Enable Receive DMA
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_EnableReceiveDMA(FCUART_Type *pUart)
{
pUart->BAUD |= FCUART_BAUD_RDMAEN_MASK;
}
/**
* @brief Disable Receive DMA
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_DisableReceiveDMA(FCUART_Type *pUart)
{
pUart->BAUD &= ~FCUART_BAUD_RDMAEN_MASK;
}
/**
* @brief Enable Receive FIFO
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_EnableReceiveFIFO(FCUART_Type *pUart)
{
pUart->FIFO |= FCUART_FIFO_RXFEN_MASK;
}
/**
* @brief Disable Receive FIFO
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_DisableReceiveFIFO(FCUART_Type *pUart)
{
pUart->FIFO &= ~FCUART_FIFO_RXFEN_MASK;
}
/**
* @brief Clear Fifo Overflow/Underflow flag
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_ClearFIFOErrorFlag(FCUART_Type *pUart)
{
pUart->FIFO |= FCUART_FIFO_TXOF_MASK | FCUART_FIFO_RXUF_MASK;
}
/**
* @brief Set Data Value
*
* @param pUart UART instance value
* @param u32Data Set data
*/
LOCAL_INLINE void FCUART_HWA_SetData(FCUART_Type *pUart, uint32_t u32Data)
{
pUart->DATA = u32Data; /* data 32 bit */
}
/**
* @brief Get Data Value
*
* @param pUart UART instance value
* @return the data value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetData(FCUART_Type *pUart)
{
uint8_t u8Data;
u8Data = *((volatile uint8_t *)&pUart->DATA); /* data 32 bit */
return u8Data;
}
/**
* @brief Set R8T9 bit
*
* @param pUart UART instance value
* @return the data value
*/
LOCAL_INLINE void FCUART_HWA_SetR8T9(FCUART_Type *pUart, uint8_t u8Data)
{
uint32_t u32RegVal = pUart->CTRL;
pUart->CTRL = ((u32RegVal & (~ FCUART_CTRL_R8T9_MASK)) | FCUART_CTRL_R8T9(u8Data));
}
/**
* @brief Get R8T9 bit
*
* @param pUart UART instance value
* @return the data value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetR8T9(FCUART_Type *pUart)
{
return (uint8_t)((pUart->CTRL & FCUART_CTRL_R8T9_MASK) >> FCUART_CTRL_R8T9_SHIFT);
}
/**
* @brief Set R9T8 bit
*
* @param pUart UART instance value
* @return the data value
*/
LOCAL_INLINE void FCUART_HWA_SetR9T8(FCUART_Type *pUart, uint8_t u8Data)
{
uint32_t u32RegVal = pUart->CTRL;
pUart->CTRL = ((u32RegVal & (~ FCUART_CTRL_R9T8_MASK)) | FCUART_CTRL_R9T8(u8Data));
}
/**
* @brief Get R9T8 bit
*
* @param pUart UART instance value
* @return the data value
*/
LOCAL_INLINE uint8_t FCUART_HWA_GetR9T8(FCUART_Type *pUart)
{
return (uint8_t)((pUart->CTRL & FCUART_CTRL_R9T8_MASK) >> FCUART_CTRL_R9T8_SHIFT);
}
/**
* @brief Reset the instance by software.
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_SoftwareReset(FCUART_Type *pUart)
{
pUart->RST |= FCUART_RST_RST_MASK;
pUart->RST &= ~FCUART_RST_RST_MASK;
}
/**
* @brief Set fcuart TX Transfer enable or disable.
*
* @param pUart UART instance value
* @param bEnable Enable cmd, false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetTxTransfer(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->CTRL |= FCUART_CTRL_TE_MASK;
}
else
{
pUart->CTRL &= ~FCUART_CTRL_TE_MASK;
}
}
/**
* @brief Set fcuart RX Transfer enable or disable.
*
* @param pUart UART instance value
* @param bEnable Enable cmd, false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetRxTransfer(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->CTRL |= FCUART_CTRL_RE_MASK;
}
else
{
pUart->CTRL &= ~FCUART_CTRL_RE_MASK;
}
}
/**
* @brief Set lin break detect interrupt.
*
* @param pUart UART instance value
* @param bEnable Enable cmd, false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetLinBreakDetectInterrupt(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->BAUD |= FCUART_BAUD_LBKDIE_MASK;
}
else
{
pUart->BAUD &= ~FCUART_BAUD_LBKDIE_MASK;
}
}
/**
* @brief Set lin break detect feature enable.
*
* @param pUart UART instance value
* @param bEnable Enable cmd, false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetLinBreakDetectEnable(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->STAT |= (FCUART_STAT_LBKDE_MASK | FCUART_STAT_BCGL_MASK);
}
else
{
pUart->STAT &= ~(FCUART_STAT_LBKDE_MASK | FCUART_STAT_BCGL_MASK);
}
}
/**
* @brief Send a lin break field.
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_SendBreakField(FCUART_Type *pUart)
{
pUart->DATA |= FCUART_DATA_FETSC_MASK;
}
/**
* @brief Set uart receive active interrupt.
*
* @param pUart UART instance value
* @param bEnable Enable cmd, false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetReceiveActiveInterrupt(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->BAUD |= FCUART_BAUD_RIAEIE_MASK;
}
else
{
pUart->BAUD &= ~FCUART_BAUD_RIAEIE_MASK;
}
}
/**
* @brief Set uart receive active interrupt.
*
* @param pUart UART instance value
* @param return false for disable, true for enable.
*/
LOCAL_INLINE bool FCUART_HWA_GetReceiveActiveInterrupt(FCUART_Type *pUart)
{
bool bRetVal = false;
if (0U != (pUart->BAUD & FCUART_BAUD_RIAEIE_MASK))
{
bRetVal = true;
}
return bRetVal;
}
/**
* @brief Set FCUART inverse feature.
*
* @param pUart UART instance value
* @param bEnable false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetReceiveDataInverse(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->STAT |= FCUART_STAT_RXINV_MASK;
}
else
{
pUart->STAT &= ~FCUART_STAT_RXINV_MASK;
}
}
/**
* @brief Get the FCUART inverse bit value.
*
* @param pUart UART instance value
* @param return false for disable, true for enable.
*/
LOCAL_INLINE bool FCUART_HWA_GetReceiveDataInverse(FCUART_Type *pUart)
{
bool bRetVal = false;
if (0U != (pUart->STAT & FCUART_STAT_RXINV_MASK))
{
bRetVal = true;
}
return bRetVal;
}
/**
* @brief Set the FCUART frame error interrupt.
*
* @param pUart UART instance value
* @param bEnable false for disable, true for enable.
*/
LOCAL_INLINE void FCUART_HWA_SetFrameErrorInterrupt(FCUART_Type *pUart, bool bEnable)
{
if (true == bEnable)
{
pUart->CTRL |= FCUART_CTRL_FEIE_MASK;
}
else
{
pUart->CTRL &= ~FCUART_CTRL_FEIE_MASK;
}
}
/**
* @brief Enable the FCUART loop mode.
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_EnableLoopMode(FCUART_Type *pUart)
{
pUart->CTRL |= FCUART_CTRL_LOOPMS_MASK;
}
/**
* @brief Disable the FCUART loop mode.
*
* @param pUart UART instance value
*/
LOCAL_INLINE void FCUART_HWA_DisableLoopMode(FCUART_Type *pUart)
{
pUart->CTRL &= ~FCUART_CTRL_LOOPMS_MASK;
}
/**
* \brief Set FCUART MODIR value
*
* \param pUart UART instance value
* \param u32Data Set data
*/
LOCAL_INLINE void FCUART_HWA_SetModir(FCUART_Type *pUart, uint32_t u32Data)
{
pUart->MODIR = u32Data; /* data 32 bit */
}
/**
* \brief Get FCUART MODIR value
*
* \param pUart UART instance value
* \param u32Data Get data
*/
LOCAL_INLINE uint32_t FCUART_HWA_GetModir(FCUART_Type *pUart)
{
return pUart->MODIR ;
}
/** @}*/
#endif /* end for #ifndef _HWA_FCUART_H_ */