- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]GPIB自动测试系统的开发
( 2)iberr指出调用出错时具体的错误。值为0-28 (3)ibcnt和ibcnt1计数变量 每次在GPIB母线进行输入和输出(READ,WRITE)操作时,ibcnt都会记下所传送的字节数。 (6)int ibrd(int Bd, void *rdbuf, long count)—从器件读回器件消息 rdbuf—读回的器件消息赋给变量*rdbuf 板级编程总结: (1)Ibfind 打开器件 (2)ibsic接口清零 (3)ibsre进入远控 (4)ibcmd发接口消息,设置听、讲地址 (5)ibwrt发程控命令 (6)ibrd读测量结果 2.器件级单仪器编程 器件级编程过程 器件清除 发程控命令 读测量结果 函数ibclr ibwrt ibrd #define ARRAYSIZE 1024 // Size of read buffer int Dev; // Board handle char ReadBuffer[ARRAYSIZE + 1]; // Read Buffer char ErrorMnemonic[21][5] = {EDVR, ECIC, ENOL, EADR, EARG, ESAC, EABO, ENEB, EDMA, , EOIP, ECAP, EFSO, , EBUS, ESTB, ESRQ, , , , ETAB}; void GPIBCleanup(int Bd, char* ErrorMsg); /*初始化 */ #define BDINDEX 0 /* Board Index */ #define PRIMARY_ADDR_OF_DMM 1 /* Primary address of device */ #define NO_SECONDARY_ADDR 0 /* Secondary address of device */ #define TIMEOUT T10s /* Timeout value = 10 seconds */ #define EOTMODE 1 /* Enable the END message */ #define EOSMODE 0 /* Disable the EOS mode */ main( ) { Dev = ibdev (BDINDEX, PRIMARY_ADDR_OF_DMM, NO_SECONDARY_ADDR, TIMEOUT, EOTMODE, EOSMODE); /*寻找器件*/ (1)ibdev(int BdIndx, int pad, int sad, int tmo, int eot, int eos )——打开器件 bdIndx—接口卡地址(0) pad— 仪器的主地址 sad—仪器的从地址(若没有,则为0) tmo—超时的时间(典型时间为10S) eot—传输结束模式 eot=1,则当讲者发器件消息到最后一个字节时,插入管理母线 消息EOI=1; eot=0,则当讲者发器件消息到最后一个字节时,不发EOI消息。eos —字符串结束模式或结束字符 若ibdev调用正常的话,返回器件的句柄“ud”—器件号,在以后对该器件的操作过程中,即用ud指代该器件。 Ibfind-既能打开接口,也能打开器件;不能进行参数的配置, 同时ibfind只能用器件名,而不能用地址作为参数 int ibfind(char *udname)—打开器件或接口卡 Ibdev-只能打开器件 ibclr (Dev); /*器件清零*/ /* 与器件通信 */ ibwrt (Dev, “*IDN?, 5L); ibrd (Dev, ReadBuffer, ARRAYSIZE); ReadBuffer[ibcntl] = \0; printf(Returned string: %s\n, ReadBuffer); /* 器件挂起*/ ibonl (Dev
文档评论(0)