📄 csp_usart.h
字号:
/* PAR : Parity Type */
#define PAR (0x07ul << 9) /* PAR Mask */
#define PAR_EVEN (0x00ul << 9) /* Even parity */
#define PAR_ODD (0x01ul << 9) /* Odd parity */
#define PAR_SPACE (0x02ul << 9) /* Space parity (forced to 0) */
#define PAR_MARK (0x03ul << 9) /* Mark parity (forced to 1) */
#define PAR_NO (0x04ul << 9) /* No parity */
#define PAR_MULTIDROP (0x06ul << 9) /* Multi Drop parity */
/* NBSTOP : Number of Stop Bits */
#define NBSTOP (0x03ul << 12) /* NBSTOP Mask */
#define NBSTOP_1 (0x00ul << 12) /* 1 Stop bit */
#define NBSTOP_15 (0x01ul << 12) /* 1.5 Stop bit */
#define NBSTOP_2 (0x02ul << 12) /* 2 Stop bit */
/* CHMODE : Channel Mode */
#define CHMODE (0x03ul << 14) /* CHMODE Mask */
#define CHMODE_NORMAL (0x00ul << 14) /* Normal channel */
#define CHMODE_AUTO (0x01ul << 14) /* Automatic echo channel */
#define CHMODE_LOCAL (0x02ul << 14) /* Local loop back channel */
#define CHMODE_REMOTE (0x03ul << 14) /* Remote loop back channel */
/* MODE9 : 9-Bit Character Length */
#define MODE8 (0x00ul << 17) /* 8-Bits Mode */
#define MODE9 (0x01ul << 17) /* 9-Bits Mode */
/* CLKO : Clock Output Select */
#define CLKO (0x01ul << 18) /* Clock Output */
#define CLKI (0x00ul << 18) /* Clock Input */
/******************************************************************************
* SR, IER, IDR, IMR : USART Status and Interrupt Registers
******************************************************************************/
#define RXRDY (0x01ul << 0) /* Receiver ready */
#define TXRDY (0x01ul << 1) /* Transmitter ready */
#define RXBRK (0x01ul << 2) /* Receiver break */
#define ENDRX (0x01ul << 3) /* End of receiver PDC transfer */
#define ENDTX (0x01ul << 4) /* End of transmitter PDC transfer */
#define USOVRE (0x01ul << 5) /* Overrun Error */
#define FRAME (0x01ul << 6) /* Framing Error */
#define PARE (0x01ul << 7) /* Parity Error */
#define TIMEOUT (0x01ul << 8) /* Receiver Time Out */
#define TXEMPTY (0x01ul << 9) /* Transmitter Empty */
#define IDLE (0x01ul << 10) /* IDLE (J1708 Protocol) */
/* SR Register Only */
#define IDLEFLAG (0x01ul << 11) /* IDLE Flag (J1708 Protocol) */
/******************************************************************************
* RHR : USART Receiver Holding Register
******************************************************************************/
#define RXCHR (0x1FFul << 0) /* Received Character Mask */
/******************************************************************************
* THR : USART Transmit Holding Register
******************************************************************************/
#define TXCHR (0x1FFul << 0) /* Character to be transmitted Mask*/
/******************************************************************************
* BRGR : USART Baud Rate Generator Register
******************************************************************************/
/* CD : Clock Divisor */
#define CD (0xFFul << 0) /* CD Mask */
#define CD_DISABLE (0x00ul << 0) /* Disable Clock */
#define CD_BYPASS (0x01ul << 0) /* Clock Divisor Bypass */
/******************************************************************************
* RTOR : Receiver Time-out Register
******************************************************************************/
#define TO (0xFFul << 0) /* Time-out value Mask */
#define TO_DISABLE (0x00ul << 0) /* Disable Receiver Time-out */
/******************************************************************************
* TTGR : Transmit Time-guard Register
******************************************************************************/
#define TG (0xFFul << 0) /* Time-guard value Mask */
#define TG_DISABLE (0x00ul << 0) /* Disable Transmit Time-guard */
/******************************************************************************
************************** USART Macros Definition ****************************
******************************************************************************/
/* PER, PDR, PSR : USART PIO Registers */
#define CSP_USART_SET_PER(usart, val) ((usart)->PER = (val)) /* Enable */
#define CSP_USART_SET_PDR(usart, val) ((usart)->PDR = (val)) /* Disable */
#define CSP_USART_GET_PSR(usart) ((usart)->PSR) /* Status */
/* OER, ODR, OSR : USART Output Registers */
#define CSP_USART_SET_OER(usart, val) ((usart)->OER = (val)) /* Enable */
#define CSP_USART_SET_ODR(usart, val) ((usart)->ODR = (val)) /* Disable */
#define CSP_USART_GET_OSR(usart) ((usart)->OSR) /* Status */
/* SODR, CODR, ODSR, PDSR : USART Output Data Registers */
#define CSP_USART_SET_SODR(usart, val) ((usart)->SODR = (val)) /* Set */
#define CSP_USART_SET_CODR(usart, val) ((usart)->CODR = (val)) /* Clear */
#define CSP_USART_GET_ODSR(usart) ((usart)->ODSR) /* Status */
#define CSP_USART_GET_PDSR(usart) ((usart)->PDSR) /* Pin Status */
/* MDER, MDDR, MDSR : USART Multi-Driver Registers */
#define CSP_USART_SET_MDER(usart, val) ((usart)->MDER = (val)) /* Enable */
#define CSP_USART_SET_MDDR(usart, val) ((usart)->MDDR = (val)) /* Disable */
#define CSP_USART_GET_MDSR(usart) ((usart)->MDSR) /* Status */
/* ECR, DCR, PMSR : USART Power Management Registers */
#define CSP_USART_SET_ECR(usart, val) ((usart)->ECR = (val)) /* Enable */
#define CSP_USART_SET_DCR(usart, val) ((usart)->DCR = (val)) /* Disable */
#define CSP_USART_GET_PMSR(usart) ((usart)->PMSR) /* Status */
/* CR : USART Control Register */
#define CSP_USART_SET_CR(usart, val) ((usart)->CR = (val))
/* MR : USART Mode Register */
#define CSP_USART_SET_MR(usart, mode) ((usart)->MR = (mode))
#define CSP_USART_GET_MR(usart) ((usart)->MR)
/* SR : USART Status Register */
#define CSP_USART_GET_SR(usart) ((usart)->SR)
/* IER, IDR, IMR : USART Interrupt Registers */
#define CSP_USART_SET_IER(usart, val) ((usart)->IER = (val)) /* Enable */
#define CSP_USART_SET_IDR(usart, val) ((usart)->IDR = (val)) /* Disable */
#define CSP_USART_GET_IMR(usart) ((usart)->IMR) /* Mask */
/* RHR : USART Receive Holding Register */
#define CSP_USART_GET_RHR(usart) ((usart)->RHR)
/* THR : USART Transmit Holding Register */
#define CSP_USART_SET_THR(usart, val) ((usart)->THR = (val))
/* BRGR : USART Baud Rate Generator Register */
#define CSP_USART_GET_BRGR(usart) ((usart)->BRGR)
#define CSP_USART_SET_BRGR(usart, val) ((usart)->BRGR = (val))
/* RTOR : USART Receiver Time-out Register */
#define CSP_USART_GET_RTOR(usart) ((usart)->RTOR)
#define CSP_USART_SET_RTOR(usart, val) ((usart)->RTOR = (val))
/* TTGR : USART Transmitter Time-guard Register */
#define CSP_USART_GET_TTGR(usart) ((usart)->TTGR)
#define CSP_USART_SET_TTGR(usart, val) ((usart)->TTGR = (val))
/******************************************************************************
******************** USART External Functions Declaration *********************
******************************************************************************/
extern void CSP_USARTInit(CSP_USART_T *const usart, U32_T mode, U16_T baudrate, U8_T time_out, U8_T time_guard);
extern void CSP_USARTClose(CSP_USART_T *const usart);
extern void CSP_USARTConfigInterrupt(CSP_USART_T *const usart, U32_T int_mode, U32_T int_mask, U32_T callback);
extern void CSP_USARTEnable(CSP_USART_T *const usart, U32_T enable_mask);
extern void CSP_USARTDisable(CSP_USART_T *const usart, U32_T disable_mask);
extern void CSP_USARTReceive(CSP_USART_T *const usart, U8_T *data, U16_T length);
extern void CSP_USARTTransmit(CSP_USART_T *const usart, U8_T *data, U16_T length);
extern void CSP_USARTPioInit(CSP_USART_T *const usart, U32_T pio_mask, U32_T output_pio);
extern U32_T CSP_USARTPioGetStatus(CSP_USART_T *const usart);
extern void CSP_USARTPioClear(CSP_USART_T *const usart, U32_T pio_mask);
extern void CSP_USARTPioSet(CSP_USART_T *const usart, U32_T pio_mask);
#endif /* CSP_USART_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -