Visual C ++和Arduino之间的通信:

时间:2011-06-13 17:23:38

标签: visual-studio arduino

我有一个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端口?

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。

最明显的是,您只需使应用程序可配置并告诉它使用哪个串口。除非您的计算机上有其他进程分配虚拟COM端口,例如蓝牙驱动程序,否则端口名称永远不会更改。

第二个选项是您可以执行Arduino应用程序所执行的操作,并扫描系统上的串行端口以查找硬件。由于您使用的是CLR, System.IO.Ports.SerialPort.GetPortNames()将为您提供系统上所有串行端口的列表。 (您也可以从注册表中获取此信息。)然后,您可以枚举它们并检查引脚的状态,以查看哪些串行端口连接了设备。您可能应该在草图中包含一种查询Arduino的方法,以便您可以向它发送命令并让它给出一个固定的响应。这将允许您从其他串行设备(如调制解调器)中识别您的应用程序。

还有第三个选项需要确定FTDI驱动程序将其配置信息存储在系统/注册表中并从那里开始的位置。这涉及更多,所以我无法提供有关这种方法是否可行的任何信息。