to QSmile,
我最近要写一个DOS下的串口通信程序,下面是我的一个演示程序,发送没有问题
可是只能收到一个字符,请您帮忙看一看,另外如何做中断方式的接受呢,
多谢了,帮我调试出来,必大分相送。
#define COM 0x3f8
#include <stdio.h>
#include <dos.h>
int data[500];
void init_com(void)
{
outportb(COM+3,0x80);
outportb(COM+0,0x0c);
outportb(COM+1,0x00);
outportb(COM+3,0x03);
}
void receive(unsigned NUM)
{
unsigned i;
outportb(COM+4,0x00);
for (i=0;i<NUM;i++)
{
while((inportb(COM+5)&0x01)!=0x01);
data=inportb(COM);
}
}
void send(unsigned NUM)
{
unsigned i;
outportb(COM+4,0x03);
for(i=0;i<NUM;i++)
{
while((inportb(COM+5)&0X20)!=0X20);
outportb(COM,data);
}
}
main()
{int i;
init_com();
for(i=1;i<=50;i++)
{
data=i;
}
send(50);
receive(2);
for(i=0;i<2;i++)
{
printf("%d",data);
printf("/n");
}
scanf("%d",i);
return(1);
}