📄 rs232x3.h
字号:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright (C), 2005, Emtronix Tech. Co., Ltd.
* File name: RS232X3.CPP
* Module name: ETR232i模块的串口驱动API函数
* Author/Date: Emtronix 06/02/14
* Version: Ver 1.0
* Description: ETR232i模块的串口驱动API函数的头文件
* Others: 如有改动,请在下面的历史记录登记,谢谢合作!
------------------History-----------------------------
* Modifier/Date: //修订人及修订日期
* Modify Reason: //修订原因
* Modification: //修订的内容和位置的简要说明
------------------------------------------------------
* Modifier/Date: //修订人及修订日期
* Modify Reason: //修订原因
* Modification: //修订的内容和位置的简要说明
------------------------------------------------------
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#if !defined( _RS232_H )
#define _RS232_H
#define COM1 0
#define COM2 1
#define COM3 2
#define SMSCOM 1
// BaudIdx = 1: 115.2kbps
// BaudIdx = 2: 57.6kbps
// BaudIdx = 3: 38.4kbps
// BaudIdx = 6: 19.2kbps
// BaudIdx = 12: 9600bps
// BaudIdx = ...
// Parity = 0: no parity
// = 1: odd parity
// = 2: even parity
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :InitUART( int PortNum, unsigned int BaudIdx, int Parity=0 );
**
** 功能描述 : 初始化串口;
**
** 参 数 :
** PortNum : 串行端口号设置,可选值如下表
** ---------------------------------------------
** |PortNum | 助记符 | 简要说明 |
** |---------------------------------------------|
** | 0 | COM1 | 16C550,端口地址为0x3F8 |
** |---------------------------------------------|
** | 1 | COM2 | 来自CPU内部,16C550兼容 |
** |---------------------------------------------|
** | 2 | COM3 | 来自CPU内部,16C550兼容 |
** ---------------------------------------------
** BaudIdx : 通讯波特率设置,用户可根据需要进行设置;
** ----------------------------
** | BaudIdx | 实际设置的波特率 |
** |----------------------------
** | 1 | 115.2kbps |
** |----------------------------
** | 2 | 57.6kbps |
** |----------------------------
** | 3 | 38.4kbps |
** |----------------------------
** | 6 | 19.2kbps |
** |----------------------------
** | 12 | 9600bps |
** |----------------------------
** | 24 | 4800kbps |
** |----------------------------
** | 48 | 2400kbps |
** |----------------------------
** | 96 | 1200kbps |
** ----------------------------
** Parity : 用于选择串口通讯的奇偶校验;
** 0 : 无校验;
** 1 : 奇校验;
** 2 : 偶校验;
**
** 返 回 值 :
** 0 :初始化成功;
** <0 :初始化失败;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int InitUART( int PortNum, unsigned int BaudIdx, int Parity=0 );
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :InstallISR( int PortNum );
**
** 功能描述 :置中断;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
**
** 返 回 值 :
** 0 :安装中断成功;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int InstallISR( int PortNum );
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :UninstallISR( int PortNum );
**
** 功能描述 :恢复中断;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
**
** 返 回 值 :
** 0 :恢复中断成功;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int UninstallISR( int PortNum );
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :PutOutputData( int PortNum, char abyte );
**
** 功能描述 :将待发送的数据置入输出数据缓冲区中;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
** abyte : 待发送数据字节数;
**
** 返 回 值 :
** 0 : 输出数据缓冲区未满,写数据成功;
** —1 : 输出数据缓冲区已满,写数据失败;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int PutOutputData( int PortNum, char abyte );
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :StartSend( int PortNum );
**
** 功能描述 :启动中断,开始数据的发送过程;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
**
** 返 回 值 :无;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void StartSend( int PortNum );
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :PutInputData( int PortNum, char abyte );
**
** 功能描述 :将待发送的数据置入接收数据缓冲区中;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
** abyte : 待接收的数据字节数;
**
** 返 回 值 :
** 0 : 接收数据缓冲区未满,存数据成功;
** —1 : 接收数据缓冲区已满,存数据失败;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int PutInputData( int PortNum, char abyte ); // call by ISR
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :GetOutputData( int PortNum );
**
** 功能描述 :从输出数据缓冲区中取出数据;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
**
** 返 回 值 :
** >0 : 返回输出数据缓冲区中所取的整数;
** —1 : 输出数据缓冲区为空;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int GetOutputData( int PortNum ); // call by ISR
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
**
** 函 数 :GetInputData( int PortNum );
**
** 功能描述 :从接收数据缓冲区中取出数据;
**
** 参 数 :
** PortNum :串行端口号设置,定义同InitUART( );
**
** 返 回 值 :
** >0 : 返回接收数据缓冲区中所取的整数;
** —1 : 接收数据缓冲区为空;
**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int GetInputData( int PortNum );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -