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

📄 uart.h

📁 DSP 5409 plc应用程序,调试通过,是用在电力线通讯上的演示程序.
💻 H
字号:
//==========================================================================================
// Filename:		uart.h
//
// Description:		TLC16C550C UART driver routines.
//
// Copyright (C) 2003 Texas Instruments Incorporated
// Texas Instruments Proprietary Information
// Use subject to terms and conditions of TI Software License Agreement
//
// Functions: 
//		int uart_read() - Read a buffer of data from uart
//		int uart_write() - Write a buffer of data to uart
//
// Revision History:
//==========================================================================================

#ifndef _UART_H_
#define _UART_H_


//==========================================================================================
// Defines
//==========================================================================================

//C54XX interrupt the uart is mapped to
#define UART_INTR_FLAG		INT1
#define UART_INTR_TRAP		INT1_TRAP

//uart register addresses
// Prototype is wired to select with address lines A13 & A12.
// Real board is wired to use A14 & A13.  
// These addresses will work for both boards.
volatile ioport u16 port7000;
volatile ioport u16 port7001;
volatile ioport u16 port7002;
volatile ioport u16 port7003;
volatile ioport u16 port7004;
volatile ioport u16 port7005;
volatile ioport u16 port7006;
volatile ioport u16 port7007;

//uart registers
#define UART_RBR_REG port7000
#define UART_THR_REG port7000
#define UART_IER_REG port7001
#define UART_IIR_REG port7002
#define UART_FCR_REG port7002
#define UART_LCR_REG port7003
#define UART_MCR_REG port7004
#define UART_LSR_REG port7005
#define UART_MSR_REG port7006
#define UART_SCR_REG port7007

//for these registers ensure DLAB=1 (b7 of LCR) before accessing
#define UART_DLL_REG port7000
#define UART_DLM_REG port7001


//==========================================================================================
// Register bit definitions
//==========================================================================================
//UART_IIR_REG
#define UART_IIR_RECEIVED_DATA	(0x01)
#define UART_IIR_TRANSMIT_EMPTY	(0x02)
#define UART_IIR_LINE_STATUS	(0x04)
#define UART_IIR_MODEM_STATUS	(0x08)

//UART_FCR_REG
#define UART_FCR_FIFO_ENABLE	(0x01)
#define UART_FCR_RCV_RESET		(0x02)
#define UART_FCR_XMT_RESET		(0x04)
#define UART_FCR_DMA_MODE		(0x08)
#define UART_FCR_TRIGGER		(0xC0)

//UART_LCR_REG
#define UART_STOPBIT_ENABLE     (0x04)
#define UART_PARITY_ENABLE      (0x08)
#define UART_PARITY_SELECT      (0x10)
#define DLAB_MASK               (0x80)

//UART_MCR_REG
#define UART_LOOP_ENABLE        (0x10)
#define	UART_OUT1				(0x04)	
#define	UART_OUT2				(0x08)

//UART_LSR_REG
#define UART_LSR_DR				(0x1)		// Data Ready
#define UART_LSR_THRE			(1<<5)		// Transmitter Holding Register
#define UART_LSR_TEMT			(1<<6)		// Transmitter Empty Register


#define UART_TARGET_EMETER	0
#define	UART_TARGET_HOST	1

#define	RS485_TALK			3
#define	RS485_LISTEN		0


//==========================================================================================
// Public function prototypes
//==========================================================================================
u16 uart_read(u16* pBuf, u16 index, u16 cnt);

#endif

⌨️ 快捷键说明

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