C# USB中继单元编程

C# USB中继单元编程,c#,serial-port,C#,Serial Port,我从未做过任何嵌入式或硬件编程,我主要处理web应用程序。但是我们需要在C#中关闭/打开usb继电器。我获得了我们正在购买的设备的PDF文件 文档中有一些示例代码,例如: private void button1_ON_Click(object sender, EventArgs e) { serialPort1.Write(new byte[] { 0xFF, 0x01, 0x01 }, 0, 3); } private void button1_OFF_Click(object sender

我从未做过任何嵌入式或硬件编程,我主要处理web应用程序。但是我们需要在C#中关闭/打开usb继电器。我获得了我们正在购买的设备的PDF文件

文档中有一些示例代码,例如:

private void button1_ON_Click(object sender, EventArgs e)
{
serialPort1.Write(new byte[] { 0xFF, 0x01, 0x01 }, 0, 3);
}
private void button1_OFF_Click(object sender, EventArgs e)
{
serialPort1.Write(new byte[] { 0xFF, 0x01, 0x00 }, 0, 3);
}

问题是,我是否需要一个DLL/某种库来访问
serialPort1
,很抱歉这个垃圾问题,但我只是不确定这样的东西是如何工作的。我没有从pdf或网站上看到任何关于我需要参考的任何类型库的指示。

FTDI生产usb/串行芯片组。使用芯片组的USB设备将作为串行设备(COM端口)显示在您的计算机上。如果没有包装产品软件,FTDI有一个驱动程序,你可以从他们的网站下载。相当标准

驱动程序链接可在该产品的PDF中找到


安装后,您只需通过串行通信即可。

不,您只需使用该类即可。我记得USB设备可能会将自己注册为一个名为“COM”的串行端口,其中散列表示数字。您需要提供端口名和比特率。

.NET附带了一个非常糟糕的
System.IO.Ports.SerialPort
类。这就是示例中使用的内容。如果您只需要发送数据,而不需要自动检测端口,而是有一个存储的配置文件,那么它可能工作得足够好


如果您对旋转工作线程和仅为从串行端口读取而进行同步的想法感到恼火,并且无法使用热插拔通知生成的即插即用端口名,那么我建议使用另一个串行API。Win32 one还不错,我希望有一天能够发布我为完成所有这些任务而构建的包装器(检测设备何时插入,根据USB描述符字符串查找端口,在数据到达时引发UI事件).

因此,一旦USB设备注册,我是否会实例化一个
SerialPort
对象,并传递端口名和比特率以获得句柄,即
serialPort1
,如上面的示例所示?是的,我相信是这样。我还没有尝试在.net中这样做,但模式看起来与我在.net之前所做的类似。此外,您可能还可以轮询可用的串行端口以查看哪一个是您的设备。感谢您的回答,这很有帮助。说这个类很差劲是委婉的。这是一个很好的方式,让100个后台线程在后台为您旋转,并导致大量的时间问题。啊!