NL580 2017-08-07 06:46 采纳率: 0%
浏览 1321

DELPHI如何通过VISA与USB设备通信

Private Sub Command1_Click()
Dim defrm As Long
Dim vi As Long

' 获得visa的usb资源
Call viOpenDefaultRM(defrm)

' 打开设备
Call viOpen(defrm, "USB0::0x1AB1::0x0E11::DP8F192200227::INSTR", 0, 0, vi)

'发送设置命令
Call viVPrintf(vi, ":OUTP CH1,ON" + Chr$(10), 0)

' 关闭资源
Call viClose(vi)
Call viClose(defrm)
End Sub
以上是VB编写的通过USB控制DP831直流电源的程序,测试没问题。但我将该段代码转换成Delphi后,运行报错,请高手指点下迷津!以下是我的Delphi代码

function viOpenDefaultRM(sesn1:PLongint):Longint;stdcall external 'visa32.dll';
function viOpen(sesn1:PLongint;rsrcName:PChar;acessMode:Longint;timeout:Longint;sesn2:PLongint):Longint;stdcall external 'visa32.dll';
function viPrintf( vi:PLongint; writeFmt:pchar;ss:Longint): integer; Cdecl; external 'VISA32.DLL' ;
function viClose(sesn:PLongint):Longint;stdcall external 'visa32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
defrm,vi:PLongint;
begin
// 获得visa的usb资源
viOpenDefaultRM(defrm);
//打开设备
viOpen(defrm,'USB0::0x1AB1::0x0E11::DP8F192200227::INSTR', 0, 0, vi);
//发送设置命令
viPrintf(vi,':OUTP CH1,ON'+#10, 0);
viClose(vi);
viClose(defrm);
end;
不知是哪里出了问题?

  • 写回答

1条回答 默认 最新

  • NL580 2017-08-07 07:39
    关注

    怎么没人呢,自己先顶一下!

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码