收藏 分销(赏)

GPIB编程资料.doc

上传人:xrp****65 文档编号:7681941 上传时间:2025-01-12 格式:DOC 页数:4 大小:26KB 下载积分:10 金币
下载 相关 举报
GPIB编程资料.doc_第1页
第1页 / 共4页
GPIB编程资料.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
GPIB编程资料 上面的网页有些GPIB编程的资料不过NI的列子是最简单明了的: ***************************************************************************** * Refer to the language interface documentation for details on * which header and .obj files to include in your project. *****************************************************************************/ #include <windows.h> #include "decl-32.h" #include <stdio.h> void GpibError(char *msg);        /* Error function declaration              */ int Device = 0;                   /* Device unit descriptor                  */ int BoardIndex = 0;               /* Interface Index (GPIB0=0,GPIB1=1,etc.)  */ void main() {    int   PrimaryAddress = 2;      /* Primary address of the device           */    int   SecondaryAddress = 0;    /* Secondary address of the device         */    char  Buffer[101];             /* Read buffer                             */ /***************************************************************************** * Initialization - Done only once at the beginning of your application. *****************************************************************************/    Device = ibdev(                /* Create a unit descriptor handle         */          BoardIndex,              /* Board Index (GPIB0 = 0, GPIB1 = 1, ...) */          PrimaryAddress,          /* Device primary address                  */          SecondaryAddress,        /* Device secondary address                */          T10s,                    /* Timeout setting (T10s = 10 seconds)     */          1,                       /* Assert EOI line at end of write         */          0);                      /* EOS termination mode                    */    if (ibsta & ERR) {             /* Check for GPIB Error                    */       GpibError("ibdev Error");    }    ibclr(Device);                 /* Clear the device                        */    if (ibsta & ERR) {       GpibError("ibclr Error");    } /***************************************************************************** * Main Application Body - Write the majority of your GPIB code here. *****************************************************************************/    ibwrt(Device, "*IDN?", 5);     /* Send the identification query command   */    if (ibsta & ERR) {       GpibError("ibwrt Error");    }    ibrd(Device, Buffer, 100);     /* Read up to 100 bytes from the device    */    if (ibsta & ERR) {       GpibError("ibrd Error");    }    Buffer[ibcntl] = '\0';         /* Null terminate the ASCII string         */    printf("%s\n", Buffer);        /* Print the device identification         */ /***************************************************************************** * Uninitialization - Done only once at the end of your application. *****************************************************************************/    ibonl(Device, 0);              /* Take the device offline                 */    if (ibsta & ERR) {       GpibError("ibonl Error");    }    ibonl(BoardIndex, 0);          /* Take the interface offline              */    if (ibsta & ERR) {       GpibError("ibonl Error");    } } /***************************************************************************** *                      Function GPIBERROR * This function will notify you that a NI-488 function failed by * printing an error message.  The status variable IBSTA will also be * printed in hexadecimal along with the mnemonic meaning of the bit * position. The status variable IBERR will be printed in decimal * along with the mnemonic meaning of the decimal value.  The status * variable IBCNTL will be printed in decimal. * * The NI-488 function IBONL is called to disable the hardware and * software. * * The EXIT function will terminate this program. *****************************************************************************/ void GpibError(char *msg) {     printf ("%s\n", msg);     printf ("ibsta = &H%x  <", ibsta);     if (ibsta & ERR )  printf (" ERR");     if (ibsta & TIMO)  printf (" TIMO");     if (ibsta & END )  printf (" END");     if (ibsta & SRQI)  printf (" SRQI");     if (ibsta & RQS )  printf (" RQS");     if (ibsta & CMPL)  printf (" CMPL");     if (ibsta & LOK )  printf (" LOK");     if (ibsta & REM )  printf (" REM");     if (ibsta & CIC )  printf (" CIC");     if (ibsta & ATN )  printf (" ATN");     if (ibsta & TACS)  printf (" TACS");     if (ibsta & LACS)  printf (" LACS");     if (ibsta & DTAS)  printf (" DTAS");     if (ibsta & DCAS)  printf (" DCAS");     printf (" >\n");     printf ("iberr = %d", iberr);     if (iberr == EDVR) printf (" EDVR <DOS Error>\n");     if (iberr == ECIC) printf (" ECIC <Not Controller-In-Charge>\n");     if (iberr == ENOL) printf (" ENOL <No Listener>\n");     if (iberr == EADR) printf (" EADR <Address error>\n");     if (iberr == EARG) printf (" EARG <Invalid argument>\n");     if (iberr == ESAC) printf (" ESAC <Not System Controller>\n");     if (iberr == EABO) printf (" EABO <Operation aborted>\n");     if (iberr == ENEB) printf (" ENEB <No GPIB board>\n");     if (iberr == EOIP) printf (" EOIP <Async I/O in progress>\n");     if (iberr == ECAP) printf (" ECAP <No capability>\n");     if (iberr == EFSO) printf (" EFSO <File system error>\n");     if (iberr == EBUS) printf (" EBUS <Command error>\n");     if (iberr == ESTB) printf (" ESTB <Status byte lost>\n");     if (iberr == ESRQ) printf (" ESRQ <SRQ stuck on>\n");     if (iberr == ETAB) printf (" ETAB <Table Overflow>\n");     printf ("ibcntl = %ld\n", ibcntl);     printf ("\n");     /* Call ibonl to take the device and interface offline */     ibonl (Device,0);     ibonl (BoardIndex,0);     exit(1); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服