?? uart.h
字號:
/***********************************************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 + -