为了顺利地进行RS-232数据的传输,需要设计初始化串口函数InstallCom,从串口发送数据函数ToCom,判断串口是否收到数据函数IsCom以及从串口接收数据函数ReadCom等,这些函数的定义都建立在bioscom之上,而相关的头文件定义如下:
#include <bios.h>
#define COM1 0
#define COM2 1
#define COM3 2
#define COM4 3
#define COM_ERROR 0x8e00 /*串口错误定义*/
#define DATA_READY 0x100 /*串口收到数据*/
#define QueueIsNotEmpty 1 /*接收队列非空*/
#define QueueIsEmpty 0
#define SUCCESS 0
#define ERROR -1
typedef unsigned char byte;
3 通信函数的设计
3.1 串口初始化函数InstallCom
串口初始化函数通过输入的串口参数,求得bComByte的值,即参数设置字节,进行串口的初始化,其源代码如下。
int InstallCom (int port, unsigned long baud, int data, int parity, int stop) {
/*port: COM1-COM4 */
/*baud: 110-9600 */
/*data: 7, 8 */
/*parity: 0=none, 1=odd, 2=even*/
/*stop: 1, 2 */
…/*计算参数设置字节bComByte,具体可参考文献 [2]*/
nRet = bioscom (0, bComByte, port); /* 初始化端口*/
return CheckResult (nRet);
} 如,InstallCom (COM1, 9600, 8, 0, 1 )就是将COM1初始化为波特率9600,数据位8,无校验,停止位1,如果成功,返回SUCCESS,如果失败,返回ERROR,通过3.2节的CheckResult得到返回值。
|