谁有在DOS下用中断方式使用串口的程序?

borland_boy 2003-04-21 01:48:00
谁有在DOS下用中断方式使用串口的程序?

请发到我信箱里

borland_boy@263.net

收到马上给分
...全文
40 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuafa 2003-04-21
  • 打赏
  • 举报
回复
蹭分
NowCan 2003-04-21
  • 打赏
  • 举报
回复
但是没有完整的程序。
NowCan 2003-04-21
  • 打赏
  • 举报
回复
http://www.gjwtech.com/serialcomm.htm
Behard 2003-04-21
  • 打赏
  • 举报
回复
注意开头的 // #define DEBUG
最好修改一下这个函数
void comm_close ( int portid )
{ // restore previous settings of 8259
switch ( portid )
{
case 1: //close COM1
outportb ( MDMCOM1 + 1, 0x08 ); // Drop OUT2
outportb ( MDMCOM1 + 1, 0x00 ); // Drop DTR and RTS
outportb ( INTCONT, MDMINTC | inportb ( INTCONT ) );
setvect ( MDMINTV, serintfhr); // Reset original interrupt vector
break;
case 2: //close COM2
outportb ( MDMCOM2 + 1, 0x08 ); // Drop OUT2
outportb ( MDMCOM2 + 1, 0x00 ); // Drop DTR and RTS
outportb ( INTCONT, MDINTC2 | inportb ( INTCONT ) );
setvect ( MDINTV2, serintmodem); // Reset original interrupt vector
break;
case 3: //close COM3
outportb ( MDMCOM3 + 1, 0x08 ); // Drop OUT2
outportb ( MDMCOM3 + 1, 0x00 ); // Drop DTR and RTS
//outportb ( INTCONT, MDMINTC | inportb ( INTCONT ) );
//setvect ( MDMINTV, oldfhr ); // Reset original interrupt vector
case 4: //close COM4
outportb ( MDMCOM4 + 1, 0x08 ); // Drop OUT2
outportb ( MDMCOM4 + 1, 0x00 ); // Drop DTR and RTS
//outportb ( INTCONT, MDINTC2 | inportb ( INTCONT ) );
//setvect ( MDINTV2, oldtow ); // Reset original interrupt vector
break;
default:
break;
}
}

//注意:serintfhr、serintmodem 代表的是中断服务程序名称
Behard 2003-04-21
  • 打赏
  • 举报
回复
我给你一个吧

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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