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

📄 uart.h

📁 C语言源代码及相关资料
💻 H
📖 第 1 页 / 共 2 页
字号:
/***********************************************Copyright (c)*********************************************
**                                Guangzou ZLG-MCU Development Co.,LTD.
**                                     
**                                       http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:			    uart.h
** Last modified Date:      2007-10-15
** Last Version:		    1.0
** Descriptions:		    uart头文件
**
**--------------------------------------------------------------------------------------------------------
** Created by:			    wengshujie
** Created date:		    2007-10-15
** Version:				    1.0
** Descriptions:		    该头文件在CONFIG.h中包括
**
**--------------------------------------------------------------------------------------------------------
** Modified by:			    
** Modified Date:		    
** Version:				    
** Descriptions:		    
**
*********************************************************************************************************/
#ifndef __UART_H
#define __UART_H

#define UART_SEMCONTROL
#define QUEUE_NEW_OPRT

/*********************************************************************************************************
   UART器件编号,用户不可修改
*********************************************************************************************************/
#define UART0   0
#define UART1   1
#define UART2   2
#define UART3   3

/*********************************************************************************************************
  定义使用到的UART寄存器偏移地址,用户不可修改
*********************************************************************************************************/
#define __B_UART_RBR    0
#define __B_UART_THR    0
#define __B_UART_DLL    0
#define __B_UART_DLM    1
#define __B_UART_IER    1
#define __B_UART_IIR    2
#define __B_UART_FCR    2
#define __B_UART_LCR    3
#define __B_UART_LSR    5
#define __B_UART_SCR    7

/*********************************************************************************************************
   标识是接收队列还是发送队列,用户不可修改
*********************************************************************************************************/
#define RX_FIFO     0
#define TX_FIFO     1

/*********************************************************************************************************
   操作参数返回,用户不可修改
*********************************************************************************************************/
#define UART_OK             1                                           /*  串口操作成功                */                
#define UART_NOK            0                                           /*  串口操作失败                */

/*********************************************************************************************************
   定义Uart器件数目
*********************************************************************************************************/
#define __UART_MAX_NUM    4                                             /*  LPC23xx有4个UART            */

/*********************************************************************************************************
   UART器件信息结构结构体,用户不可修改
*********************************************************************************************************/
struct __uart_info {
                uint32      uiOffBase;                                  /*  uart寄存器间隔= 1 << OffBase*/                         
    volatile    uint32     *puiAddrBase;                                /*  uart寄存器基地址            */  
                 
                uint32      uiQueueReviceFifoLen;                       /*  软件接收FIFO长度            */
                uint32      uiQueueSendFifoLen;                         /*  软件发送FIFO长度            */
                
                DataQueue  *PdqSendBuf;                                 /*  发送队列                    */
                DataQueue  *PdqReviceBuf;                               /*  接收队列                    */
                
                uint32      uiUartFlag;                                 /*  7位置位表示不用队列缓冲
                                                                            
                                                                            4位置位用于队列使能         */                                                                                                        
                
                uint32      uiUartId;                                   /*  用于记录自己的UART通道号    */
                uint32      uiUartState;                                /*  记录收发状态1表示发,0表示收 */
#if defined(UART_SEMCONTROL)
								OS_EVENT		*pUartSem; 
#endif // end #if defined(QUEUE_SEMCONTROL)                
}; 

typedef struct __uart_info   __UART_INFO;                               /*  定义类型                    */
typedef __UART_INFO         *__PUART_INFO;                              /*  定义指针                    */

/*********************************************************************************************************
   配置UART硬件FIFO长度,用户可修改,但没必要时不要修改,修改前先了解硬件FIFO
*********************************************************************************************************/ 
#define UARTFIFOLEN1     0     
#define UARTFIFOLEN4     1
#define UARTFIFOLEN8     2
#define UARTFIFOLEN14    3

#define UART0FIFOLENFUN  UARTFIFOLEN8                                /*  配置UART0的接收FIFO触发深度   */

#define UART1FIFOLENFUN  UARTFIFOLEN8                                /*  配置UART1的接收FIFO触发深度   */

#define UART2FIFOLENFUN  UARTFIFOLEN8                                /*  配置UART2的接收FIFO触发深度   */

#define UART3FIFOLENFUN  UARTFIFOLEN8                                /*  配置UART3的接收FIFO触发深度   */

/*********************************************************************************************************
   配置UART软件FIFO长度,用户可修改
*********************************************************************************************************/  
#define QUEUE0REVICEFIFOLEN      256	//64                            /*  用户可在此修改接收软FIFO大小*/ 
#define QUEUE0SENDFIFOLEN        TRANSLEN	//64                   		/*  用户可在此修改发送软FIFO大小*/ 
#define QUEUE0REVICEFIFOLENFUN   QUEUE0REVICEFIFOLEN+32//28                 /*  用户不要修改                */
#define QUEUE0SENDFIFOLENFUN     QUEUE0SENDFIFOLEN+32//28                   /*  用户不要修改                */
                                                
#define QUEUE1REVICEFIFOLEN      256	//64                          /*  用户可在此修改接收软FIFO大小*/ 
#define QUEUE1SENDFIFOLEN        0                                    /*  用户可在此修改发送软FIFO大小*/ 
#define QUEUE1REVICEFIFOLENFUN   QUEUE1REVICEFIFOLEN+32//28                 /*  用户不要修改                */
#define QUEUE1SENDFIFOLENFUN     QUEUE1SENDFIFOLEN+32//28                   /*  用户不要修改                */

#define QUEUE2REVICEFIFOLEN      TRANSLEN*2	                 		/*  用户可在此修改接收软FIFO大小*/ 
#define QUEUE2SENDFIFOLEN        TRANSINFOLEN*2                           /*  用户可在此修改发送软FIFO大小*/ 
#define QUEUE2REVICEFIFOLENFUN   QUEUE2REVICEFIFOLEN+32//28                 /*  用户不要修改                */
#define QUEUE2SENDFIFOLENFUN     QUEUE2SENDFIFOLEN+32//28                   /*  用户不要修改                */

#define QUEUE3REVICEFIFOLEN      0                                    /*  用户可在此修改接收软FIFO大小*/ 
#define QUEUE3SENDFIFOLEN        TRANSINFOLEN/2	//0x640                            /*  用户可在此修改发送软FIFO大小*/ 
#define QUEUE3REVICEFIFOLENFUN   QUEUE3REVICEFIFOLEN+32//28                 /*  用户不要修改                */
#define QUEUE3SENDFIFOLENFUN     QUEUE3SENDFIFOLEN+32//28                   /*  用户不要修改                */

/*********************************************************************************************************
** Function name:           uartInit
** Descriptions:            串口初始化
** input parameters:        uiId:       子设备号
**                          pcArg:      字符串指针
**                          pRsv:       保留参数
** Output parameters:       NONE
** Returned value:			OPERATE_SUCCESS:    操作成功
**                          OPERATE_FAIL:       操作失败
** Example:                 char pUart[]="BaudRate=9600,DataBits=8,StopBits=1,Parity=NONE,RtsControl=NONE"; 
**                          uartInit(0,pUart,0); 
*********************************************************************************************************/
extern int32 uartInit (uint32 uiId,
                       char *pcArg,
                       void *pRsv);


/*********************************************************************************************************
** Function name:           uartSetMode
** Descriptions:            设置串口的参数
** input parameters:        uiId      : 子设备号
**                          uiCmd     :设置参数宏:CTMODE--串口模式;BAUDRATE--串口波特率
**                          pcArg     :字符串指针
** Output parameters:       NONE
** Returned value:			OPERATE_SUCCESS:    操作成功
**                          OPERATE_FAIL:       操作失败
** Example1:                char pUartBps[] = "BaudRate=9600";
**                          uartSetMode( 0, BAUDRATE, pUartBps);  
** Example2:                char pUart[]="DataBits=8,StopBits=1,Parity=NONE,RtsControl=NONE";
**                          uartSetMode( 0, CTMODE, pUart);  
*********************************************************************************************************/
extern int32 uartSetMode (uint32 uiId,
                          uint32 uiCmd,

⌨️ 快捷键说明

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