你先试一下用max里面的与仪器通信发这些命令有没有问题。你说能找到gpib0的接口,那你的仪器有没有被扫描出来?你附图,我的gpib卡连了3个仪器,在visa资源下面就已经有了自动扫描出的3个仪器的资源名称。没有这些你就没法通信的。如果这些你都有,那就试一下第一行,如果通信也是可以的,那就是程序的问题了。根据你的说法,通信时没有问题了那你用你写的程序发*idn?可不可以,如果也行那就是你后面发的命令的问题了。跟那个i/o没啥关系了。你再好好看下手册的命令描述,范例里面的命令有的时候是比较老的,不一定支持现在的仪器,你也可以执行下范例看行不行呀。另外,要注意有些命令是没有返回值的,这样你在读操作时当然会出错的,而一些测量的,比如说volt?之类的,你发下去最好要延时一下再去读的。另外,建议你这些命令,你都用max里面的与仪器通信先试一下,哪些有返回值,哪些没有,再放到程序里面。 补:询问:发送命令,并自动读取返回值,适用于有返回值的命令发送:单纯的发送命令到设备读取:从设备读取值,发送与读取一起用等同于询问,不过一个是自动,一个是手动。比如说*idn?,你点询问可以,你可以点下发送,再点读取也是一样。你图中发的那个命令是操作命令,没有返回值的吧,应该点发送,然后看仪器状态是否变化。发查询命令的时候,基本上后面有个‘?’,用询问才可以的。