首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于GPIB总线的无线电频谱监测系统的设计
来源:本站整理  作者:佚名  2009-11-04 10:02:48



  BOOL CGPIB∷Open(int BdIndx,int pad,int sad,int tmo,int eot,int eos)

{    if (m_bOpened==TRUE)

    return TRUE;

  m_ctrl=ibfind(″GPIB0″);//获得GPIB卡的控制句柄

  if (m_ctrl<0)

     return FALSE;

  ibconfig(m_ctrl,IbcAUTOPOLL,0);//禁止AutoPoll

  eot=1;

  eos=0x0C0A;

  m_dev=ibdev(BdIndx,pad,sad,tmo,1,eos);

               //获得ESVN40的控制句柄

  if (ibsta & ERR)

  { sprintf(ErrString,″打开GPIB卡出错!错误号:ibsta=

               0x%x iberr=%dn″,ibsta,iberr);

     this->SetError(ErrString);

     return FALSE;

  }

  ibbna(m_dev,″GPIB0″);  //将ESVN40分配给GPIB卡

  setGPIBEos(0x0C0A);

  m_bOpened=TRUE;

  return m_bOpened;

  }

  ②GPIB类中向仪器写字符串的方法主要用于完成从控制计算机向仪器发送控制字符串的功能,可以用异步或者同步方式进行传送。在写之前,要对超时进行合理的设置。通常,如果字符串较长,可以把超时设定得大一些。其关键代码如下:

int CGPIB∷SendData(const char*buf,int DataLength)

{     string tmpbuf;

  tmpbuf=buf;

  tmpbuf +=10;

  ibeot(m_dev,1);

  ibwrta(m_dev,(void*)tmpbuf.c_str( ),tmpbuf.size( ));

               //异步写字符串到仪器

  ibwait(m_dev,0x4100);   //等待写操作完成

  ibwait(m_dev,0x0000);   //读出GPIB的状态

  if(ibsta & ERR)

  {

              return FALSE;

  }

  return ibcntl;

  }

  ③从仪器接收字节的方法主要用于完成从ESVN40的数据缓冲区中读入一个字节。该方法对于读取仪器的状态寄存器非常有用。

int CGPIB∷ReadChar(char*ch)

{

  if(!(m_bOpened)||(m_dev==NULL))

              return FALSE;

  int i=1;

  RecvData((void*)ch,i);

  return TRUE;

}

  

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:226,769.50000 毫秒