📄 st16c554sio.h
字号:
/* ST16C554Sio.h - header file for binary interface ST16C554 UART driver *//*modification history--------------------01a,30dec04,xf written (from ST16C554Serial.h)*/#ifndef __INCST16C554Sioh#define __INCST16C554Sioh#ifdef __cplusplusextern "C" {#endif#ifndef _ASMLANGUAGE#include "vxWorks.h"#include "sioLib.h"/* channel data structure */typedef struct /* ST16C554_CHAN */ { SIO_DRV_FUNCS * pDrvFuncs; /* driver functions */ STATUS (*getTxChar) (); /* pointer to xmitr function */ STATUS (*putRcvChar) (); /* pointer tp rcvr function */ void * getTxArg; void * putRcvArg; UINT16 int_vec; /* interrupt vector number */ UINT16 channelMode; /* SIO_MODE_[INT | POLL] */ UCHAR (*inByte) (int); /* routine to read a byte from register */ void (*outByte)(int,char); /* routine to write a byte to register */ ULONG lcr; /* UART line control register */ ULONG lst; /* UART line status register */ ULONG mdc; /* UART modem control register */ ULONG msr; /* UART modem status register */ ULONG ier; /* UART interrupt enable register */ ULONG iid; /* UART interrupt status register */ ULONG brdl; /* UART baud rate register */ ULONG brdh; /* UART baud rate register */ ULONG data; /* UART data register */ ULONG options; /* UART hardware options */ ULONG fcr; /* UART FIFO Status Register*/ } ST16C554_CHAN;typedef struct /* BAUD */ { int rate; /* a baud rate */ int preset; /* counter preset value to write to DUSCC_CTPR[HL]A */ } BAUD;/* register definitions */#define UART_THR 0x00 /* Transmitter holding reg. */#define UART_RDR 0x00 /* Receiver data reg. */#define UART_BRDL 0x00 /* Baud rate divisor (LSB) */#define UART_BRDH 0x01 /* Baud rate divisor (MSB) */#define UART_IER 0x01 /* Interrupt enable reg. */#define UART_IID 0x02 /* Interrupt Status reg. */#define UART_LCR 0x03 /* Line control reg. */#define UART_MDC 0x04 /* Modem control reg. */#define UART_LST 0x05 /* Line status reg. */#define UART_MSR 0x06 /* Modem status reg. *//* equates for interrupt enable register */#define ST16C554_IER_RXRDY 0x01 /* receiver data ready */#define ST16C554_IER_TBE 0x02 /* transmit bit enable */#define ST16C554_IER_LST 0x04 /* line status interrupts */#define ST16C554_IER_MSI 0x08 /* modem status interrupts *//* equates for interrupt identification register */#define ST16C554_IIR_IP 0x01 /* interrupt pending bit */#define ST16C554_IIR_MASK 0x0f /* interrupt id bits mask */#define ST16C554_IIR_MSTAT 0x00 /* modem status interrupt */#define ST16C554_IIR_THRE 0X02 /* transmit holding register empty */#define ST16C554_IIR_RBRF 0x04 /* receiver buffer register full */#define ST16C554_IIR_SEOB 0x06 /* serialization error or break *//* equates for line control register */#define ST16C554_LCR_CS5 0x00 /* 5 bits data size */#define ST16C554_LCR_CS6 0x01 /* 6 bits data size */#define ST16C554_LCR_CS7 0x02 /* 7 bits data size */#define ST16C554_LCR_CS8 0x03 /* 8 bits data size */#define ST16C554_LCR_2_STB 0x04 /* 2 stop bits */#define ST16C554_LCR_1_STB 0x00 /* 1 stop bit */#define ST16C554_LCR_PEN 0x08 /* parity enable */#define ST16C554_LCR_PDIS 0x00 /* parity disable */#define ST16C554_LCR_EPS 0x10 /* even parity slect */#define ST16C554_LCR_FP1 0x20 /* Force parity 1 */#define ST16C554_LCR_FP0 0x30 /* Force parity 0 */#define ST16C554_LCR_SBRK 0x40 /* break control bit */#define ST16C554_LCR_NUSE 0x00 /* BIT-7 not used, should be 0 *//* equates for the modem control register */#define ST16C554_MCR_DTR 0x01 /* dtr output */#define ST16C554_MCR_RTS 0x02 /* rts output */#define ST16C554_MCR_OUT1 0x04 /* output #1 */#define ST16C554_MCR_OUT2 0x08 /* output #2 */#define ST16C554_MCR_LOOP 0x10 /* loop back */ /* equates for line status register */#define ST16C554_LSR_RXRDY 0x01 /* receiver data available */#define ST16C554_LSR_OE 0x02 /* overrun error */#define ST16C554_LSR_PE 0x04 /* parity error */#define ST16C554_LSR_FE 0x08 /* framing error */#define ST16C554_LSR_BI 0x10 /* break interrupt */#define ST16C554_LSR_THRE 0x20 /* transmit holding register empty */#define ST16C554_LSR_TEMT 0x40 /* transmitter empty *//* equates for modem status register */#define ST16C554_MSR_DCTS 0x01 /* cts change */#define ST16C554_MSR_DDSR 0x02 /* dsr change */#define ST16C554_MSR_DRI 0x04 /* ring change */#define ST16C554_MSR_DDCD 0x08 /* data carrier change */#define ST16C554_MSR_CTS 0x10 /* complement of cts */#define ST16C554_MSR_DSR 0x20 /* complement of dsr */#define ST16C554_MSR_RI 0x40 /* complement of ring signal */#define ST16C554_MSR_DCD 0x80 /* complement of dcd */#if defined(__STDC__) || defined(__cplusplus)extern void ST16C554HrdInit(ST16C554_CHAN *pDev);extern void ST16C554Int (ST16C554_CHAN *pDev);#elseextern void ST16C554HrdInit();extern void ST16C554Int(); #endif /* __STDC__ */#endif /* _ASMLANGUAGE */#ifdef __cplusplus}#endif#endif /* __INCST16C554h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -