我用VC编写了测试6314GPIB命令的小程序,运行第一次可以控制,但运行第二次就不能向仪器写命令了这是什么原因呢?
我写的程序调用的是VISA自带的例子,我只用了
viopen();
viwrite();
这两个函数而已,通过viwrite()向6314写命令,程序第一次可以正常运行,退出程序后,在打开程序时,提示viwrite()出错.
Chroma提供的CVI驱动我也调用了,还是有同样的问题,
我想是在退出时处理不正确吧,
不知6314在退出时要做什么特殊处理才不影响再次DOWNLOAD.
以下是我用VC写的程序:
#include
#include
#include
#include
#include "visa.h"
static ViUInt32 rcount;
static unsigned char data[1024];
static ViStatus status;
static ViSession defaultRM;
static ViSession inst;
static char stringinstruct[1024];
int main(void)
{
status = viOpenDefaultRM (&defaultRM);
status = viOpen (defaultRM, "GPIB::7::INSTR", VI_NULL, VI_NULL, &inst);
strcpy (stringinstruct,"*IDN?\n");
status = viWrite (inst, (ViBuf)stringinstruct,strlen(stringinstruct), &rcount);
status = viRead (inst, data, 3000, &rcount);
cout< strcpy (stringinstruct,"CONFigure:REMote OFF");
status = viWrite (inst, (ViBuf)stringinstruct,strlen(stringinstruct), &rcount);
status = viClose (inst);
status = viClose (defaultRM);
return 0;
}