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

📄 uart.h

📁 IAR中S3C44B0X 示例程序
💻 H
字号:
#ifndef _uart_h
#define _uart_h

/*
*******************************************************************************
*                             CONSTANTS
*******************************************************************************
*/

#define UART0REG_BASE	0x01D00000
#define UART1REG_BASE	0x01D04000

/*
*******************************************************************************
*                            DATA TYPES
*******************************************************************************
*/

typedef struct UartRegsS
{
    VUINT   ULCON;		//0x00, UART LINE CONTROL
    VUINT	UCON;		//0x04, UART CONTROL
    VUINT	UFCON;		//0x08,	FIFO CONTROL
    VUINT	UMCON;		//0x0c,	MODEM CONTROL
    VUINT	UTRSTAT;	//0x10, UART TX/RX STATUS
    VUINT	UERSTAT;	//0x14, ERROR STATUS
    VUINT	UFSTAT;		//0x18, FIFO STATUS
    VUINT	UMSTAT;		//0x1c, MODEM STATUS
#ifdef __BIG_ENDIAN
	VUCHAR	RESERVED1[3];
	VUCHAR	UTXH;		//0x23
	VUCHAR	RESERVED2[3];
    VUCHAR	URXH;		//0x27
#else
	VUCHAR	UTXH;		//0x20, TRANSMIT HOLDING(BUFFER) & FIFO REGISTER
	VUCHAR	RESERVED1[3];
    VUCHAR	URXH;		//0x24, RECEIVE HOLDING(BUFFER) & FIFO REGISTER
	VUCHAR	RESERVED2[3];
#endif
    VUINT	UBRDIV;		//0x28, UART BAUD RATE DIVISION
}   UartRegsT;

typedef struct UartCfgS
{
	UINT rate;          // used to configure the baud rate generator
}   UartCfgT;

// UART Interface
typedef UINT32 (*UartSetupT) (void *ctxP, UartCfgT *cfgP);
typedef void (*UartWriteT) (void *ctxP, CHAR *buf, INT len);
typedef INT (*UartReadT) (void *ctxP, CHAR *ch);
typedef INT (*UartCheckT) (void *ctxP, CHAR *ch);
typedef INT (*UartClearRxT) (void *ctxP);

// UART Context Structure
typedef struct UartContextS
{
    PVOID regsP;                            // Pointer to UART's register base
    UartSetupT setupUartFnP;                // Pointer to UART's hardware setup function
    UartWriteT writeUartFnP;                // Pointer to UART's write function
    UartReadT readUartFnP;                  // Pointer to UART's read function
    UartCheckT checkUartFnP;                // Pointer to UART's check function
    UartClearRxT clearRxUartFnP;            // Pointer to UART's clear Rx. FIFO function
}   UartContextT;

/*
*******************************************************************************
*                            GLOBAL VARIABLES
*******************************************************************************
*/

extern UartContextT Uart0, Uart1;

/*
*******************************************************************************
*                            FUNCTION PROTOTYPES
*******************************************************************************
*/

void UartSWInit (void);

#endif  /* _uart_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -