这个方法调用前先要调用CH341OpenDevice,使用后再调用CH341CloseDevice吗? 我使用Java调用这三个方法,示波器没信号,不知为何?那里理解错了? 附我的Java代码: public class SerTest {
public static void main(String[] args) { try { JNative init = new JNative("CH341DLL.dll", "CH341OpenDevice"); init.setRetVal(Type.INT); init.setParameter(0, Type.INT,""+0); init.invoke(); System.out.println(init.getRetVal()); JNative j2 = new JNative("CH341DLL.dll", "CH341StreamI2C"); int i=0; j2.setParameter(++i,Type.INT,""+ 0); j2.setParameter(++i,Type.INT, ""+2); Pointer p1 =new Pointer( MemoryBlockFactory.createMemoryBlock(2)); Pointer p2 =new Pointer( MemoryBlockFactory.createMemoryBlock(2));
p1.setByteAt(0,(byte)1); p1.setByteAt(1,(byte) 0); j2.setParameter(++i, p1); j2.setParameter(++i,Type.INT, ""+2); j2.setParameter(++i, p2); j2.setRetVal(Type.INT); j2.invoke(); byte b[]={p2.getAsByte(0),p2.getAsByte(1)}; for(int jj=0;jj System.out.println("b"+b[jj]+" "+j2.getRetVal()); JNative end = new JNative("CH341DLL.dll", "CH341CloseDevice"); end.setRetVal(Type.INT); end.setParameter(0, Type.INT,""+0); end.invoke(); } catch (Exception e) { e.printStackTrace(); } }
}