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

📄 hw_uart.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File :  hw_uart.h
Desc :  定义UART的寄存器结构体\寄存器位的宏定义\接口函数

Author : huangxinyu
Date : 2007-05-30
Notes :

$Log: hw_uart.h,v $
Revision 1.2  2007/10/08 02:38:49  Lingzhaojun
添加版本自动注释脚本

* huangxinyu   2007-06-01     修改uart接口名称
*********************************************************************/
#ifndef _UART_H
#define _UART_H

#include "Hw_include.h"
//#include "kdrv_uart.h"
/*********************************************************************
 MACRO DEFINITIONS
*********************************************************************/

#define FCR_FIFO_EN     0x01  /* Fifo enable */
#define FCR_RXSR        0x02  /* Receiver soft reset */
#define FCR_TXSR        0x04  /* Transmitter soft reset */

#define MCR_DTR         0x01
#define MCR_RTS         0x02
#define MCR_DMA_EN      0x04
#define MCR_TX_DFR      0x08

#define LCR_WLS_MSK 0x03  /* character length slect mask */
#define LCR_WLS_5 0x00  /* 5 bit character length */
#define LCR_WLS_6 0x01  /* 6 bit character length */
#define LCR_WLS_7 0x02  /* 7 bit character length */
#define LCR_WLS_8 0x03  /* 8 bit character length */
#define LCR_STB  0x04  /* Number of stop Bits, off = 1, on = 1.5 or 2) */
#define LCR_PEN  0x08  /* Parity eneble */
#define LCR_EPS  0x10  /* Even Parity Select */
#define LCR_STKP 0x20  /* Stick Parity */
#define LCR_SBRK 0x40  /* Set Break */
#define LCR_BKSE 0x80  /* Bank select enable */

#define LSR_DR  0x01  /* Data ready */
#define LSR_OE  0x02  /* Overrun */
#define LSR_PE  0x04  /* Parity error */
#define LSR_FE  0x08  /* Framing error */
#define LSR_BI  0x10  /* Break */
#define LSR_THRE 0x20  /* Xmit holding register empty */
#define LSR_TEMT 0x40  /* Xmitter empty */
#define LSR_ERR  0x80  /* Error */

/* useful defaults for LCR */
#define LCR_8N1  0x03
#define INVALID_CHAR          0XFF        //huangsl
/*********************************************************************
 ENUMERATIONS AND STRUCTURES
*********************************************************************/
typedef volatile struct uartRegister
{
    unsigned char rbr;  /* 0 */
int pad1:
    24;
    unsigned char ier;  /* 1 */
int pad2:
    24;
    unsigned char fcr;  /* 2 */
int pad3:
    24;
    unsigned char lcr;  /* 3 */
int pad4:
    24;
    unsigned char mcr;  /* 4 */
int pad5:
    24;
    unsigned char lsr;  /* 5 */
int pad6:
    24;
    unsigned char msr;  /* 6 */
int pad7:
    24;
    unsigned char scr;  /* 7 */
int pad8:
    24;
} uartRegister_t, *puartRegister_t;

#define thr rbr
#define iir fcr
#define dll rbr
#define dlm ier

typedef struct _KDRV_UART_IFACE
{
    //公共头部
    INT32U                      iSIze;  //sizeof iface
    RK_GUID                          iGUID;    //需要系统统一设定,可以用于区分不同的模块
    INT32U                      sb; //read only ,内部赋值
    BOOLEAN                  iValid; //read only ,内部赋值

    //私有数据部分.
    void(* Uart_PowerOnInit)(puartRegister_t , int);
    char(* Uart_ReadChar)(puartRegister_t);

    void(* Uart_WriteChar)(puartRegister_t , char);
    void(*Uart_PowerOffDeinit)(puartRegister_t , int);

} KDRV_UART_IFACE , *PKDRV_UART_IFACE;
/*********************************************************************
 FUNCTION PROTOTYPES
*********************************************************************/
void Uart_PowerOnInit(puartRegister_t port, int baud_divisor);

char Uart_ReadChar(puartRegister_t port);

void Uart_WriteChar(puartRegister_t port, char c);

int Uart_Tstc(puartRegister_t port);

void Uart_PowerOffDeinit(puartRegister_t port, int baud_divisor);

/*********************************************************************
 EXTERN DECLARATIONS
*********************************************************************/


#endif /* _UART_H */

/*********************************************************************
 END OF FILE
*********************************************************************/


⌨️ 快捷键说明

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