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

📄 uart.h

📁 这是一个ucos下看门狗的驱动程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************Copyright (c)**************************************************
**                                      
**                                          
**                                杭州央海软件科技有限公司
**
**                                 http://www.armgcc.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: uart.h
** 创 建 人: 罗辉联
** 创建日期: 2006年5月10日
** 描    述: 该文件包含了所有UART功能函数原型与所需要的常量
**
**--------------历史版本--------------------------------------------------------------------------------
** 创 建 人: 罗辉联
** 版    本: V1.0
** 日   期: 2006年5月10日
** 描   述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#ifndef __UART_H
#define __UART_H

#include "cpu_cfg.h"
#include "rccu.h"

    #ifdef __cplusplus
    extern "C" {
    #endif

#if EN_ARM_UART > 0		//决定是否编译该文件

/************************************** 宏定义,常量定义 ******************************************/

//说明: 通过带参数的宏来访问不同串口的同一个名称的寄存器
#define UARTx_BR(uart)  		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+BR)))
#define UARTx_TxBUFR(uart) 		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+TxBUFR)))
#define UARTx_RxBUFR(uart) 		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+RxBUFR)))
#define UARTx_CR(uart)  		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+CR)))
#define UARTx_IER(uart)  		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+IER)))
#define UARTx_SR(uart)  		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+SR)))
#define UARTx_GTR(uart)  		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+GTR)))
#define UARTx_TOR(uart)  		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+TOR)))
#define UARTx_TxRSTR(uart) 		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+TxRSTR)))
#define UARTx_RxRSTR(uart) 		(*((volatile unsigned short *)(0xC0004000+(uart)*0x1000+RxRSTR)))

#define DUMMY 0

// UART flags definition
#define UART_TXFULL          0x0200
#define UART_RXHALFFULL      0x0100
#define UART_TIMEOUTIDLE     0x0080
#define UART_TIMEOUTNOTEMPTY 0x0040
#define UART_OVERRUNERROR    0x0020
#define UART_FRAMEERROR      0x0010
#define UART_PARITYERROR     0x0008
#define UART_TXHALFEMPTY     0x0004
#define UART_TXEMPTY         0x0002
#define UART_RXBUFFULL       0x0001

// CR regiter bit definition
#define UART_FIFOENABLEBIT 	 10
#define UART_RXENABLEBIT     8
#define UART_RUNBIT          7
#define UART_LOOPBACKBIT     6
#define UART_PARITYODDBIT    5
#define UART_STOPBITS        3

// Stop bits definition
#define UART_05STOPBITS      0x00
#define UART_10STOPBITS      (0x01<<3)
#define UART_15STOPBITS      (0x02<<3)
#define UART_20STOPBITS      (0x03<<3)

// Modes definition
#define UART_8BITSDATA       0x01
#define UART_7BITSDATA       0x03
#define UART_9BITSDATA       0x04
#define UART_8BITSDATAWAKEUP 0x05
#define UART_8BITSDATAPARITY 0x07

#define UART0_RX_PIN 		(8)   // TQFP 144 pin N?143
#define UART0_TX_PIN 		(9)   // TQFP 144 pin N?144

#define UART1_RX_PIN 		(10)  // TQFP 144 pin N?1
#define UART1_TX_PIN 		(11)  // TQFP 144 pin N?3

#define UART2_RX_PIN 		(13)  // TQFP 144 pin N?9
#define UART2_TX_PIN 		(14)  // TQFP 144 pin N?10

#define UART3_RX_PIN 		(1)   // TQFP 144 pin N?123
#define UART3_TX_PIN 		(0)   // TQFP 144 pin N?124


/**************************************  枚举类型定义  *******************************************/

typedef enum { UART0 =0, UART1,UART2, UART3 } UART_CHANNELS_T;

typedef enum { UART_EVEN_PARITY = 0x0000, UART_ODD_PARITY  = 0x0020, UART_NO_PARITY } UART_PARITY_T;

typedef enum { UART_0_5_STOPBITS = 0x00, UART_1_0_STOPBITS = 0x08, UART_1_5_STOPBITS = 0x10, UART_2_0_STOPBITS = 0x18 }UARTSTOPBITS_T;

typedef enum { UARTM_8D = 0x01, UARTM_7D_P = 0x03, UARTM_9D = 0x04, UARTM_8D_W = 0x05, UARTM_8D_P = 0x07 }UART_MODE_T;

typedef enum { UART_RXFIFO, UART_TXFIFO } UART_FIFO_T;

/************************************** 结构体类型定义  ******************************************/

/********************************** 全局外部函数原型声明 *****************************************/


/*********************************************************************************************************
;** 函数名称: UART_Reset
;** 功能描述: 复位时串口默认配置
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_Reset(UART_CHANNELS_T uart);

/*********************************************************************************************************
;** 函数名称: UART_AttributeConfig
;** 功能描述: 配置串口属性
;** 
;** 参    数: uart:      UART0 UART1 UART2 UART3   
;**           baud_rate: 根据需要填写  
;**           parity   : UART_EVEN_PARITY  UART_ODD_PARITY  UART_NO_PARITY 
;**           stop_bits: UART_0_5_STOPBITS UART_1_0_STOPBITS  UART_1_5_STOPBITS  UART_2_0_STOPBITS
;**           mode     : UARTM_8D  UARTM_7D_P  UARTM_9D  UARTM_8D_W  UARTM_8D_P
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_AttributeConfig(UART_CHANNELS_T uart, UWORD32 baud_rate, UART_PARITY_T parity,
                          UARTSTOPBITS_T stop_bits, UART_MODE_T mode);

/*********************************************************************************************************
;** 函数名称: UART_ITConfig
;** 功能描述: 串口中断配置
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**           uart_flag: 中断允许禁止标志
;**           new_status: ENABLE 或 DISABLE
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_ITConfig(UART_CHANNELS_T uart, UWORD16 uart_flag, CONFIG_STATUS_T new_status);

/*********************************************************************************************************
;** 函数名称: UART_FIFOConfig
;** 功能描述: 串口FIFO配置
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**           new_status: ENABLE 或 DISABLE
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_FIFOConfig(UART_CHANNELS_T uart, CONFIG_STATUS_T new_status);

/*********************************************************************************************************
;** 函数名称: UART_FIFOReset
;** 功能描述: 串口FIFO复位
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**           FIFO:UART_RxFIFO  UART_TxFIFO
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_FIFOReset(UART_CHANNELS_T uart, UART_FIFO_T FIFO);

/*********************************************************************************************************
;** 函数名称: UART_ONOFFConfig
;** 功能描述: 串口开与关配置
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**           new_status: ENABLE 或 DISABLE
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_ONOFFConfig(UART_CHANNELS_T uart, CONFIG_STATUS_T new_status);

/*********************************************************************************************************
;** 函数名称: UART_LoopbackConfig
;** 功能描述: 串口开与关配置
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**           new_status: Loopback mode ENABLE 或 DISABLE
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void UART_LoopbackConfig(UART_CHANNELS_T uart, CONFIG_STATUS_T new_status);

/*********************************************************************************************************
;** 函数名称: UART_SmartCardConfig
;** 功能描述: SmartCard模式选择
;** 
;** 参    数: uart:UART0 UART1 UART2 UART3
;**           new_status: SmartCard mode ENABLE 或 DISABLE
;**
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/

⌨️ 快捷键说明

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