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

📄 rs232x3.h

📁 湖北水文黄石试点集中器代码
💻 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 + -