📄 uart16554.h
字号:
#ifndef __Uart16554_H
#define __Uart16554_H
#define UART3_CS 0xf000
#define UART2_CS 0xe000
#define UART1_CS 0xd000
#define UART0_CS 0xc000
#define UART4BASE 0xff00
#define UART3BASE 0xef00
#define UART2BASE 0xdf00
#define UART1BASE 0xcf00
#define UARTDLL_OFFSET 0
#define UARTDLM_OFFSET 1
#define UARTIER_OFFSET 1
#define UARTFCR_OFFSET 2
#define UARTIIR_OFFSET 2
#define UARTLCR_OFFSET 3
#define UARTMCR_OFFSET 4
#define UARTLSR_OFFSET 5
#define UARTMSR_OFFSET 6
#define UARTSCR_OFFSET 7
//1.8432MHZ CLK [divisor = clock / (baud rate × 16)]
#define RATE4800 24
#define RATE7200 16
#define RATE9600 12
#define RATE19200 6
#define RATE38400 3
#define RATE56000 2
// FCR REGISTER
#define FIFOEN (1<<0)
#define RESETRECFIFO (1<<1)
#define RESETTRAFIFO (1<<2)
#define DMAMODESEL (1<<3)
#define TRIGGER_LEVEL1 (0<<6) //1 BYTE TRIGGER
#define TRIGGER_LEVEL4 (1<<6) //4 BYTE TRIGGER
#define TRIGGER_LEVEL8 (2<<6) //8 BYTE TRIGGER
#define TRIGGER_LEVEL16 (3<<6) //16 BYTE TRIGGER
// IER REGISTER
#define ERBI (1<<0) //enable the received data available interrupt and the timeout interrupts
#define DIS_ETBEI (0<<1) //disable transmitter holding register empty interrupt
#define ETBEI (1<<1) //enable transmitter holding register empty interrupt
#define ERLSI (1<<2) //enable receiver line status interrupt
#define EDSSI (1<<3) //enable modem status interrupt
//LCR REGISTER
#define DATA5 0 //5 DATA BIT
#define DATA6 1 //6 DATA BIT
#define DATA7 2 //7 DATA BIT
#define DATA8 3 //8 DATA BIT
#define LCRSTB (1<<2) //1.5 OR 2 STOP BIT
#define LCRPEN (1<<3) //PARITY ENABLE
#define LCREPS (1<<4) //EVEN PARITY ENABLE
#define LCRSTICK (1<<5) //STICK PARITY ENABLE
#define LCRBREAK (1<<6) //BREAK ENABLE
#define LCRDLAB (1<<7) //0--Access Receiver Buffer,
//1--Access Divisor Latches
//LINE STATUS REGISTER (READ ONLY)
#define LSRDR (1<<0) // DATA READY
#define LSROE (1<<1) // OVERRUN ERROR
#define LSRPE (1<<2) // PARITY ERROR
#define LSRFE (1<<3) // FRAMEING ERROR
#define LSRBI (1<<4) // BREAK INTEERUPT
#define LSRTHRE (1<<5) // TRANSMITTER HOLDING REGISTER EMPTY
#define LSRTEMT (1<<6) // TRANSMITER REGISTER EMPTY
#define LSRERECFO (1<<7) // RECEIVE REGISTER EMPTY
//MODEM CONTROL REGISTOR
#define DTRACT (1<<0) //DTR ACTIVE
#define RTSACT (1<<1) //RTS ACTIVE
#define EXTINTENABLE (1<<3) //External Interrupt Enabled
#define EXTINTDIS (0<<3) //External Interrupt Disabled
#define LOOPEN (1<<4) //LOOP ENABLE
#define LOC_BYTE(ax) XBYTE[ax]
typedef enum
{
SONY = 0x0,
PELCO = 0x1,
AD = 0x2
} Camera_t;
typedef enum
{
SLAVE = 0x0,
HOLDOVER = 0x1,
MASTER = 0x2,
AUTOCLK = 0x3
} E1Clk_t;
typedef enum
{
NORMAL_STATUS = 0x0,
LOOPIN_STATUS = 0x1,
LOOPOUT_STATUS = 0x2,
ROUTER_STATUS = 0x3,
PIP_STATUS = 0x4,
PIP4_STATUS = 0x5
} E1LineStatus_t;
typedef enum
{
UNKOWN_STATUS = 0,
FOCUS_STATUS,
YUANJIN_STATUS,
APERCHER_STATUS
} CameraStatus_t;
//2级菜单
typedef enum
{
NO_MENU_STATUS = 0,
MASTER_MENU_STATUS, //进入设置Codec状态
NETWORK_MENU_STATUS, //IP set
ENCODER_MENU_STATUS, //Encoder set
DECODER_MENU_STATUS //Decoder set
} MenuStatus_t;
//3级菜单
typedef enum
{
NOTSET_STATUS = 0,
AV_STATUS,
PRESET_STATUS,
INVOKE_PRESET_STATUS,
UNKOWN_SET_STATUS,
IP_SET_STATUS,
MASK_SET_STATUS,
GATEWAY_SET_STATUS,
APPLAY_SET_STATUS,
EAUDIO_MODE_STATUS,
EAUDIO_BITRATE_STATUS,
EVIDEO_FORMAT_STATUS,
EVIDEO_RESOLUTION_STATUS,
EVIDEO_TYPE_STATUS, //(C/V)
EVIDEO_BITRATE_STATUS,
EVIDEO_SOURCE_STATUS,
ESTREAM_ADDR_STATUS,
ESTREAM_PORT_STATUS,
ESTREAM_TYPE_STATUS,
DVIDEO_FORMAT_STATUS,
DSTREAM_ADDR_STATUS,
DSTREAM_PORT_STATUS,
DSTREAM_TYPE_STATUS
} SetNumStatus_t;
#define TWO_VIDEO_INPUT 1
#define VIDEO_VGA_INPUT 2
#define ONE_VGA_INPUT 3
#define TELECONTROL_LOCAL 0
#define TELECONTROL_REMOTE 1
#define TELECONTROL_TMR_COUNT 100
#define SER4_TMR_COUNT 150
#define TELECONTROL_CAMERA_RATE1 0x05 //慢
#define TELECONTROL_CAMERA_RATE2 0x4 //中
#define TX0_BASE 0x1000
#define RX0_BASE 0x1800
#define TX1_BASE 0x2000
#define RX1_BASE 0x2800
#define TX2_BASE 0x3000
#define RX2_BASE 0x3800
#define TX3_BASE 0x4000
#define RX3_BASE 0x4800
#define TX4_BASE 0x5000
#define RX4_BASE 0x5800
#define CMD_BUFFER_LEN 0x800 //2k buffer
typedef struct{
uint16 iBase;
uint16 iLen;
uint16 iPut;
uint16 iGet;
}Cmd_Basebuf, *pCmd_Basebuf;
void test_xram(void);
void UART_INIT(uint16 uart_addr, uint8 baud);
void TL16554Init(void);
void cmd_buf_init(void);
void printf_com_ok(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -