⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csp_usart.h

📁 IAR 平台ATMEL 的例程, 和说明
💻 H
📖 第 1 页 / 共 2 页
字号:

/* 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 + -