?? csp_usart.h
字號:
/******************************************************************************
* CSR, SR, IER, IDR, IMR : USART Status and Interrupt Registers
******************************************************************************/
#define ENDHEADER (0x01ul << 24) /* End of Header occurred on a LIN Frame */
#define ENDMESS (0x01ul << 25) /* End of Message occurred on a LIN Frame */
#define NOTRESP (0x01ul << 26) /* Not Responding detected on a LIN Frame */
#define BITERROR (0x01ul << 27) /* Bit Error detectedon a LIN Frame */
#define IPERROR (0x01ul << 28) /* Identity Parity Error detectedon a LIN Frame */
#define CHECKSUM (0x01ul << 29) /* Checksum error detected on a LIN Frame */
#define WAKEUP (0x01ul << 30) /* Wake up detected */
/* SR, IER, IDR, IMR Registers Only */
#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 */
/******************************************************************************
* LIR : LIN Identifier Register
******************************************************************************/
#define IDENTIFIER (0x3Ful << 0) /* LIN's IDENTIFER Mask */
/******************************************************************************
* SBLR : Sync Break Length Register
******************************************************************************/
#define SYNC_BRK (0x1Ful << 0) /* Sync Break Length Mask */
/******************************************************************************
************************** 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))
/* LIR : USART LIN Identifier Register */
#define CSP_USART_GET_LIR(usart) ((usart)->LIR)
#define CSP_USART_SET_LIR(usart, val) ((usart)->LIR = (val))
/* DFWR0 : USART Data Field Write 0 Register */
#define CSP_USART_GET_DFWR0(usart) ((usart)->DFWR0)
#define CSP_USART_SET_DFWR0(usart, val) ((usart)->DFWR0 = (val))
/* DFWR1 : USART Data Field Write 1 Register */
#define CSP_USART_GET_DFWR1(usart) ((usart)->DFWR1)
#define CSP_USART_SET_DFWR1(usart, val) ((usart)->DFWR1 = (val))
/* DFRR0 : USART Data Field Read 0 Register */
#define CSP_USART_GET_DFRR0(usart) ((usart)->DFRR0)
/* DFRR1 : USART Data Field Read 1 Register */
#define CSP_USART_GET_DFRR1(usart) ((usart)->DFRR1)
/* SBLR : USART Sync Break Length Register */
#define CSP_USART_GET_SBLR(usart) ((usart)->SBLR)
#define CSP_USART_SET_SBLR(usart, val) ((usart)->SBLR = (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_USARTInitLin(CSP_USART_T *const usart, 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_USARTTransmitLinHeaderFrame(CSP_USART_T *const usart, U8_T sblr, U8_T identifier);
extern void CSP_USARTTransmitLinResponseFrame(CSP_USART_T *const usart, U8_T *data, U8_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 + -