大放分!!!!串口联机通讯。

SuYang1999 2002-01-27 03:59:41
小弟有一事相求,请各位大哥帮帮忙。来就有分。
在DOS下,用9针串口使两台PC机之间进行通信的连接方法,
与编程方法,最好能用C语言写。在此谢谢了!!
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gOODiDEA 2002-02-05
  • 打赏
  • 举报
回复
不好意思,才看到你的问题
好像是:
2---3
3---2
7---7
Hotgoo 2002-02-05
  • 打赏
  • 举报
回复
看看,学习
cwz 2002-02-05
  • 打赏
  • 举报
回复
到此一游
SuYang1999 2002-02-05
  • 打赏
  • 举报
回复
写好了我是还会给分,的真心的谢谢你!我所只的是最少连线!
好像能用3-4根就可以了,大峡认为呢?
SuYang1999 2002-02-05
  • 打赏
  • 举报
回复
谢谢楼上的朋友,能不能告诉我9针COM口的连线是怎么样的呢?谢谢!
jiandan 2002-01-27
  • 打赏
  • 举报
回复
o~~
ggdw 2002-01-27
  • 打赏
  • 举报
回复
恩~~
gOODiDEA 2002-01-27
  • 打赏
  • 举报
回复
//基于DOS功能调用的串行通信
//这是接受程序
#include<dos.h>
#include<stdio.h>
#include<process.h>


char *filename="COM2";
char recechar[100];
int handle;

int init()
{
union REGS inregs,outregs;
inregs.h.ah=0x3d;
inregs.h.al=0x02;
inregs.x.dx=FP_OFF(filename);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0)
{
handle=outregs.x.ax;
return 0;
}
else return 1;
}


int receive()
{
union REGS inregs,outregs;
inregs.h.ah=0x3f;
inregs.x.bx=handle;
inregs.x.cx=5;
inregs.x.dx=FP_OFF(recechar);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0)
return 0;
else return 1;
}

int close()
{
union REGS inregs,outregs;
inregs.h.ah=0x3e;
inregs.x.bx=handle;
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0) return 0;
else return 1;
}

void main(void)
{
if (init()) printf("Please Check Your Network!");
else
{
if (receive()) printf("Failure to recive");
else
{
printf("Success to recive\n");
printf("%s",recechar);
}
close();
}

}

//这是发送程序
#include<dos.h>
#include<stdio.h>
#include<process.h>

char *filename="COM2";
char sendstring[]="DOS COM Test!";
int handle;

int init()
{
union REGS inregs,outregs;
inregs.h.ah=0x3d;
inregs.h.al=0x02;
inregs.x.dx=FP_OFF(filename);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0)
{
handle=outregs.x.ax;
return 0;
}
else return 1;
}

int send()
{
union REGS inregs,outregs;
inregs.h.ah=0x40;
inregs.x.bx=handle;
inregs.x.cx=13;
inregs.x.dx=FP_OFF(sendstring);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0) return 0;
else return 1;
}

int close()
{
union REGS inregs,outregs;
inregs.h.ah=0x3e;
inregs.x.bx=handle;
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0) return 0;
else return 1;
}

void main(void)
{
if (init()) printf("Please Check Your Network!");
else
{
if (send()) printf("Failure to Send");
else printf("Success to Send");
close();
}

}

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧