我想采用中断方式从COM2口接受数据,但不管怎么试也不好使,望高手指点一二
我的程序如下:如有错误清大侠们不吝赐教
void Init(void)
{
outportb(0x2fb,0x80);
outportb(0x2f8,0x0c);
outportb(0x2f9,0x00);
outportb(0x2fb,0x03);
outportb(0x2fc,0x08|0x0b);
outportb(0x2f9,0x0f);
}//COM2口初始化
void interrupt far (* old_com2)(...);
void interrupt far com2_handler(...)
{
Data_i++;
if(Data_i>1000)
Data_i=0;//就是看看是否拦截到COM2口中断
void com2_on(void)
{
char s;
s=inportb(0x21);
s=s&0xf7;
outportb(0x21,s);
old_com2=getvect(0x0b);
setvect(0x0b,com2_handler);
}
void com2_off(void)
{
setvect(0x0b,old_com2);
}
void main(void)
{
int Data_i=0;
com2_on();
for(;
{
if(Data_i/10==0)
printf("com2 int"
;
}
com2_off();
}
我的程序如下:如有错误清大侠们不吝赐教
void Init(void)
{
outportb(0x2fb,0x80);
outportb(0x2f8,0x0c);
outportb(0x2f9,0x00);
outportb(0x2fb,0x03);
outportb(0x2fc,0x08|0x0b);
outportb(0x2f9,0x0f);
}//COM2口初始化
void interrupt far (* old_com2)(...);
void interrupt far com2_handler(...)
{
Data_i++;
if(Data_i>1000)
Data_i=0;//就是看看是否拦截到COM2口中断
void com2_on(void)
{
char s;
s=inportb(0x21);
s=s&0xf7;
outportb(0x21,s);
old_com2=getvect(0x0b);
setvect(0x0b,com2_handler);
}
void com2_off(void)
{
setvect(0x0b,old_com2);
}
void main(void)
{
int Data_i=0;
com2_on();
for(;

{
if(Data_i/10==0)
printf("com2 int"
;}
com2_off();
}
