我有一个Arduino应用程序需要通过USB(串行)连接与我的PC通信。我有一些代码,我从Arduino游乐场取消了
http://arduino.cc/playground/Interfacing/CPPWindows#VisualStudio2008
this->serialPort1->PortName = "COM5"; // Replace with your COM port!
this->serialPort1->Open();
this->serialPort1->Write( "7" ); // In the future, you'll expand on this
// to write your custom data to the board
this->serialPort1->Close();
我的问题是如何确定Arduino USB线连接到哪个COM端口?
答案 0 :(得分:0)
有几种方法可以解决这个问题。
最明显的是,您只需使应用程序可配置并告诉它使用哪个串口。除非您的计算机上有其他进程分配虚拟COM端口,例如蓝牙驱动程序,否则端口名称永远不会更改。
第二个选项是您可以执行Arduino应用程序所执行的操作,并扫描系统上的串行端口以查找硬件。由于您使用的是CLR, System.IO.Ports.SerialPort.GetPortNames()将为您提供系统上所有串行端口的列表。 (您也可以从注册表中获取此信息。)然后,您可以枚举它们并检查引脚的状态,以查看哪些串行端口连接了设备。您可能应该在草图中包含一种查询Arduino的方法,以便您可以向它发送命令并让它给出一个固定的响应。这将允许您从其他串行设备(如调制解调器)中识别您的应用程序。
还有第三个选项需要确定FTDI驱动程序将其配置信息存储在系统/注册表中并从那里开始的位置。这涉及更多,所以我无法提供有关这种方法是否可行的任何信息。