📄 uart.h
字号:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: uart.h
** Last modified Date: 2007-07-07
** Last Version: 1.00
** Descriptions: uart参数配置信息
**--------------------------------------------------------------------------------------------------------
** Created by: Liu Weifeng
** Created date: 2007-11-15
** Version: 1.00
** Descriptions: The original version
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
*********************************************************************************************************/
#ifndef __UARTCONFIG_H
#define __UARTCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*********************************************************************************************************
UART 相关索引
*********************************************************************************************************/
#define UART0 0 /* UART0 ID 号 */
#define UART1 1 /* UART1 ID 号 */
#define UART0_IRQ_CHN 6 /* UART0中断通道号 */
#define UART1_IRQ_CHN 7 /* UART1中断通道号 */
/*********************************************************************************************************
UART 模式配置命令
*********************************************************************************************************/
#define SET_BAUDRATE 0 /* 串口波特率 */
#define SET_CTRLMODE 1 /* 串口模式 */
#define SET_TIMEOUT 2 /* 超时设置 */
#define SET_MODEM 3 /* UART1 Modem功能 */
#define SET_RS485 4 /* US485设置 */
#define SET_FLOWTYPE 5 /* 设置流控制类型 */
#define SET_SPRINGCH 6 /* 重新设置触发字符 */
#define SET_SPRINGPT 7 /* 重新设置接收中断触发点 */
/*********************************************************************************************************
用户可调用的钩子函数
*********************************************************************************************************/
typedef struct uartHooks {
/*
* 钩子函数流
*/
void (*pModemState)(void *pRsv, uint8 ucMsr); /* Modem状态变化调用的函数 */
/* pRsv: 保留,用户不要操作 */
/* ucMsr: MSR寄存器的值 */
void (*pSendEnd)(void *pRsv); /* 数据包发送结束调用的函数 */
/* pRsv: 保留,用户不要操作 */
void (*pRevice)(void *pRsv, INT8U ucRbr); /* 接收到字符调用的函数 */
/* pRsv: 保留,用户不要操作 */
/* ucRbr: 接收到的字符 */
void (*pLineErr)(void *pRsv, INT8U ucLcr);
/* 线路状态出错中断调用的函数 */
/*
* 触发设置
*/
char cSpringChar; /* 触发的字符 */
void (*pSpringFunction)(void *pRsv); /* 接收到触发的字符后
调用的函数 */
/* pRsv: 保留,用户不要操作 */
}UART_HOOKS, *PUART_HOOKS;
#ifndef IN_UART_C
/*********************************************************************************************************
** Function name: UartInit
** Descriptions: 串口初始化
** input parameters: ID : 子设备号
** arg :字符串指针
** Rsv :保留参数
** output parameters: None
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 UartInit (uint32 ID,
char *Arg,
void *Rsv);
/*********************************************************************************************************
** Function name: UartWrite
** Descriptions: 串口写操作
** input parameters: ID :子设备号
** buf :数据存放地址
** n :读取字节个数
** Rsv :保留参数
** output parameters: None
** Returned value: 成功写入字节个数
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
extern uint32 UartWrite (uint32 ID,
uint8 *buf,
uint32 n,
void *Rsv);
/*********************************************************************************************************
** Function name: UartDirectWrite
** Descriptions: 向串口设备直接发送数据
** input parameters: ID : 子设备号
** data : 输出的数据
** Rsv : 保留参数(NULL)
** output parameters: None
** Returned value: 实际发送的数据个数
*********************************************************************************************************/
extern int32 UartDirectWrite (uint32 ID,
uint8 *buf,
uint32 n,
void *Rsv);
/*********************************************************************************************************
** Function name: UartSetMode
** Descriptions: 设置串口的参数
** input parameters: ID : 子设备号
** Cmd :设置参数宏:CTMODE--串口模式;BAUDRATE--串口波特率
** arg :字符串指针
** output parameters: None
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 UartSetMode (uint32 ID,
uint32 Cmd,
char *Arg);
/*********************************************************************************************************
** Function name: UartRead
** Descriptions: 串口读操作
** input parameters: ID : 子设备号
** buf :数据存放地址
** n :读取字节个数
** Rsv :保留参数
** output parameters: None
** Returned value: 成功读取字节个数
*********************************************************************************************************/
extern int32 UartRead (uint32 ID,
uint8 *buf,
uint32 n,
void *Rsv);
/*********************************************************************************************************
** Function name: UartGetState
** Descriptions: 获取当前串口的参数并以字符串的形式返回
** input parameters: ID : 子设备号
** arg :字符串指针
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL
**********************************************************************************************************/
extern INT32S UartGetState(uint32 ID,char * Arg);
/*********************************************************************************************************
** Function name: UartISR
** Descriptions: UART中断服务程序
** input parameters: ID : 子设备号
** output parameters: None
** Returned value: 无
*********************************************************************************************************/
extern void UartISR (uint32 ID);
/*********************************************************************************************************
** Function name: rs485Input
** Descriptions: RS485方向控制引脚设置为输入
** input parameters: ID : 子设备号
** output parameters: None
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 rs485Input (uint32 ID);
/********************************************************************************************************/
__inline void UART0_ISR (void)
{
UartISR(UART0);
/*
* 添加用户代码
*/
VICVectAddr = 0x00; /* 中断处理结束 */
}
__inline void UART1_ISR (void)
{
UartISR (UART1);
/*
* 添加用户代码
*/
VICVectAddr = 0x00; /* 中断处理结束 */
}
#endif
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __UARTCONFIG_H */
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -