CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

怎样用TC写串口通讯方面的程序啊?能不能给个例子!谢谢!

楼主suncheng(sun_cheng)2006-07-03 16:58:20 在 C/C++ / C语言 提问

怎样用TC写串口通讯方面的程序啊?能不能给个例子!谢谢! 问题点数:20、回复次数:2Top

1 楼falcon23()回复于 2006-07-03 17:08:43 得分 2

百度搜嘛.很多的!!Top

2 楼jixingzhong(瞌睡虫·星辰)回复于 2006-07-03 18:33:55 得分 18

串口通讯:  
   
  void   OpenPort()  
  {  
        unsigned   char   ucTemp;  
        InitCOM();  
        asyncoldvect=getvect(0x0c);  
        disable();  
        inportb(0x3f8);  
        inportb(0x3fe);  
        inportb(0x3fb);  
        inportb(0x3fa);  
        outportb(0x3fc,0x08|0x0b);  
        outportb(0x3f9,0x01);  
        ucTemp=inportb(0x21)&0xef;  
        outportb(0x21,ucTemp);  
        setvect(0x0c,asyncint);  
        enable();  
  }  
  void   interrupt   far   asyncint()  
  {  
        Buffer[buffin++]   =   inportb(0x3f8);  
        if(buffin   >=   BUFFLEN   )  
            {  
  buffin   =   0;  
            }  
        outportb(0x20,0x20);  
  }  
  void   ClosePort(void)  
  {  
        disable();  
        outportb(0x3f9,0x00);  
        outportb(0x3fc,0x00);  
        outportb(0x21,inportb(0x21)&0x10);  
        enable();  
        setvect(0x0c,asyncoldvect);  
  }  
  void   InitCOM()  
  {  
        outportb(0x3fb,0x80);  
        outportb(0x3f8,0x0c);  
        outportb(0x3f9,0x00);  
        outportb(0x3fb,0x03);  
        outportb(0x3fc,0x08|0x0b);  
        outportb(0x3f9,0x01);  
  }  
  char   read_char(void)  
  {  
        char   unch;  
        if(buffout   !=   buffin)  
            {  
                unch   =   Buffer[buffout];  
                buffout++;  
                if(buffout   >=   BUFFLEN)  
    {  
        buffout   =   0;  
    }  
                return(unch);  
            }  
        else  
            {  
                return(0xff);  
            }  
   
  }  
   
   
  void   main()  
  {  
      char   unChar;  
      short   bExit_Flag   =   0;  
      OpenPort();  
      fprintf(stdout,"\n\nReady   to   Receie   DATA   ,   press   [ESC]   to   quit   ...\n\n");  
      do  
          {  
              if(kbhit())  
  {  
      unChar   =   getch();  
      switch(unChar)       //ESC退出  
          {  
              case   0x1B:        
        bExit_Flag   =   1;  
        break;  
          }  
  }  
              unChar   =   read_char();  
              if(unChar   !=   0xff)  
  {  
                          fprintf(stdout,"%c",unChar);  
                    }  
          }while(!bExit_Flag);  
          ClosePort();  
  }  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:suncheng
  • falcon23
  • jixingzhong

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo