如何打开USB设备进行读/写?

时间:2015-02-18 14:16:12

标签: c# usb hardware device

我刚开始的时候。我试图连接到通过CAN总线和USB适配器/ USB网关连接到我的电脑的电机。我已经安装了驱动程序和设备,设备管理器(DM)告诉我设备工作正常。

现在一步一步:我想连接到该设备以读取或写入数据包或其他任何内容。或者至少我想找到它就像DM找到它一样(如果我拔掉它,它会从DM中消失,当我把它重新插入其中时再次出现)。

CreateFile似乎能够打开文件和设备。好吧,现在我不想要文件,我想要设备。我可以通过WinApi获取设备的句柄,还是有更好的方法?

<小时/> enter image description here enter image description here
代码I尝试过:

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr CreateFile(string filename,
    [MarshalAs(UnmanagedType.U4)] FileAccess access,
    [MarshalAs(UnmanagedType.U4)] FileShare share,
    [Optional] IntPtr securityAttributes,
    [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
    [MarshalAs(UnmanagedType.U4)] FileAttributes flagsAndAttributes,
    [Optional] IntPtr templateFile);

IntPtr file = CreateFile(@"USB\VID_0403&PID_ECD9", FileAccess.Read, FileShare.ReadWrite,
    IntPtr.Zero, FileMode.OpenOrCreate, FileAttributes.Device, IntPtr.Zero);`

这里CreateFile的结果是null(GetLastError = ERROR_PATH_NOT_FOUND)。

1 个答案:

答案 0 :(得分:0)

您的路径应该像 @“ \?\ USB#VID_0403&PID_ECD9#000000000aaa#{ae18aa60-7f6a-11d4-97dd-00010229b959}”