📄 usart.h
字号:
//*----------------------------------------------------------------------------------
//* ATMEL Microcontroller Software Support - ROUSSET -
//*----------------------------------------------------------------------------------
//* File Name : usart.h
//* Object : USART Definition File
//*
//*
//* 1.0 27/10/97 JCZ : Creation
//* 1.1 21/04/98 JLV : Add brackets
//*----------------------------------------------------------------------------------
#ifndef usart_h
#define usart_h
#include "std_c.h"
/*----------------------------*/
/* USART Structure Definition */
/*----------------------------*/
typedef struct
{
at91_reg US_CR ; /* Control Register */
at91_reg US_MR ; /* Mode Register */
at91_reg US_IER ; /* Interrupt Enable Register */
at91_reg US_IDR ; /* Interrupt Disable Register */
at91_reg US_IMR ; /* Interrupt Mask Register */
at91_reg US_CSR ; /* Channel Status Register */
at91_reg US_RHR ; /* Receive Holding Register */
at91_reg US_THR ; /* Transmit Holding Register */
at91_reg US_BRGR ; /* Baud Rate Generator Register */
at91_reg US_RTOR ; /* Receiver Timeout Register */
at91_reg US_TTGR ; /* Transmitter Timeguard Register */
at91_reg Reserved ;
at91_reg US_RPR ; /* Receiver Pointer Register */
at91_reg US_RCR ; /* Receiver Counter Register */
at91_reg US_TPR ; /* Transmitter Pointer Register */
at91_reg US_TCR ; /* Transmitter Counter Register */
} StructUSART ;
#ifdef ___EB01
#define USART0_BASE ((StructUSART *)0xFFFD0000)
#define USART1_BASE ((StructUSART *)0xFFFCC000)
#endif
#ifdef ___EB40
#define USART0_BASE ((StructUSART *)0xFFFD0000)
#define USART1_BASE ((StructUSART *)0xFFFCC000)
#endif
#ifdef ___EB40A
#define USART0_BASE ((StructUSART *)0xFFFD0000)
#define USART1_BASE ((StructUSART *)0xFFFCC000)
#endif
#ifdef ___EB42
#define USART0_BASE ((StructUSART *)0xFFFC0000)
#define USART1_BASE ((StructUSART *)0xFFFC4000)
#endif
#ifdef ___EB55
#define USART0_BASE ((StructUSART *)0xFFFC0000)
#define USART1_BASE ((StructUSART *)0xFFFC4000)
#define USART2_BASE ((StructUSART *)0xFFFC8000)
#endif
#ifdef ___EB63
#define USART0_BASE ((StructUSART *)0xFFFC0000)
#define USART1_BASE ((StructUSART *)0xFFFC4000)
#define USART2_BASE ((StructUSART *)0xFFFC8000)
#endif
/*------------------*/
/* Control Register */
/*------------------*/
/* Reset Receiver */
#define RSTRX (1<<2)
/* Reset Transmitter */
#define RSTTX (1<<3)
/* Receiver Enable */
#define RXEN (1<<4)
/* Receiver Disable */
#define RXDIS (1<<5)
/* Transmitter Enable */
#define TXEN (1<<6)
/* Transmitter Disable */
#define TXDIS (1<<7)
/* Reset Status Bits */
#define RSTSTA (1<<8)
/* Start Break */
#define STTBRK (1<<9)
/* Stop Break */
#define STPBRK (1<<10)
/* Start Timeout */
#define STTTO (1<<11)
/* Send Address */
#define SENDA (1<<12)
/*---------------*/
/* Mode Register */
/*---------------*/
/* Clock Selection */
#define CLKS (3<<4)
#define USClk_MCK (0<<4)
#define USClk_MCK8 (1<<4)
#define USClk_SCK (2<<4)
/* Byte Length */
#define CHRL (3<<6)
#define FiveBits (0<<6)
#define SixBits (1<<6)
#define SevenBits (2<<6)
#define EightBits (3<<6)
/* Synchronous Mode Enable */
#define SYNC (1<<8)
/* Parity Mode */
#define PAR (7<<9)
#define EvenParity (0<<9)
#define OddParity (1<<9)
#define SpaceParity (2<<9)
#define MarkParity (3<<9)
#define NoParity (4<<9)
#define MultiDropMode (6<<9)
/* Stop Bit Number */
#define NBSTOP (3<<12)
#define Stop1Bit (0<<12)
#define Stop1_5Bit (1<<12)
#define Stop2Bit (2<<12)
/* Channel Mode */
#define CHMODE (3<<14)
#define NormalMode (0<<14)
#define AutomaticEcho (1<<14)
#define LocalLoopback (2<<14)
#define RemoteLoopback (3<<14)
/* 9 Bit Mode */
#define MODE9 (1<<17)
/* Baud Rate Output Enable */
#define CLKO (1<<18)
/* Standard Asynchronous Mode : 8 bits , 1 stop , no parity */
#define StandardAsyncMode (NormalMode + Stop1Bit + NoParity + EightBits + USClk_MCK)
/* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity */
#define ExternalStandardAsyncMode (NormalMode + Stop1Bit + NoParity + EightBits + USClk_SCK)
/* Standard Synchronous Mode : 8 bits , 1 stop , no parity */
#define StandardSyncMode (SYNC + NormalMode + Stop1Bit + NoParity + EightBits + USClk_MCK)
/* SCK used Label */
#define SCK_USED (CLKO | USClk_SCK)
/*-------------------------*/
/* Channel Status Register */
/*-------------------------*/
/* Receiver Ready */
#define RXRDY (1<<0)
/* Transmitter Ready */
#define TXRDY (1<<1)
/* Receiver Break */
#define RXBRK (1<<2)
/* End of Receiver PDC Transfer */
#define ENDRX (1<<3)
/* End of Transmitter PDC Transfer */
#define ENDTX (1<<4)
/* Overrun Error */
#define OVRE (1<<5)
/* Framing Error */
#define FRAME (1<<6)
/* Parity Error */
#define PARE (1<<7)
/* Receiver Timeout */
#define TIMEOUT (1<<8)
/* Transmitter Empty */
#define TXEMPTY (1<<9)
#define MASK_IRQ_TX (TXRDY | ENDTX | TXEMPTY)
#define MASK_IRQ_RX (RXRDY | ENDRX | TIMEOUT)
#define MASK_IRQ_ERROR (PARE | FRAME | OVRE | RXBRK)
#endif /* usart_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -