【问题标题】:Find USBportname with c#使用 c# 查找 USBportname
【发布时间】:2014-06-24 05:30:58
【问题描述】:

对于一个项目,我必须与 netduino 沟通, 所以我使用串行通信与netduino进行通信。

但这是我的问题 我找不到我的 USB 端口名,我使用这段小代码来查找端口名。

 private void GetPortNames()
        {
            string[] ports = SerialPort.GetPortNames();
            ComportListbox.DataSource = ports;
        }

它不显示 USB 端口名称。 我做错了什么,或者我该如何解决这个问题。

编辑

问题已编辑:

我可以从连接 NETduino 的 usbport 中看到 usbportname。所以我希望以 COM10 为例。我查看了系统管理,发现usb被称为Port_#0001.Hub_#0001。我怎样才能打开这个端口。

【问题讨论】:

  • 串口通讯跟usb portname有什么关系?您希望在 com-ports 列表中看到什么?
  • Sinatr,就像我说的,我正在与连接到 USB 端口的 netduino 女巫通信。我想知道usb端口的端口名称。 SerialPort.GetPortNames();看起来是正确的方法。
  • 我可能误会了你。列表框是显示com1com2 等还是空白?你想看com5,它不在那里还是你想看什么?
  • 列表框是空白的,我检查了数组但它也是空的
  • 仍然不清楚您期望看到什么。 GetPortNames 将返回 serial 端口列表,同时您说 usb。如果它是某种类型的 USB 到串行转换器,那么你会从中得到类似 com5 的东西,并且这个函数应该返回它。如果你没有看到它,那么可能是你的硬件没有工作/供电/连接等等。

标签: c# serial-port netduino


【解决方案1】:

如果 ComportListbox 有一个“add”方法,为什么不直接使用 for 循环呢。

foreach ( string portName in ports )
{
   ComportListbox.Items.Add( portName );
}

如果没有,请告诉我,我将删除此答案。

否则您可能必须使用BindingList&lt;string&gt;。见:Binding List<T> to DataGridView in WinForm

或者您甚至可能必须创建一个包含绑定名称的字符串属性的对象。

【讨论】:

  • 感谢您的评论,Comportlistbox 没有添加功能。但也许我可以创建一个数组并在其中的端口名处插入,然后将数组定义为 ListBox 的数据源
  • 你也许可以做 ComportListbox.Items.Add( portName );很难知道,找不到 Comportlistbox 的 api。
  • 我不知道 BindingList 是否可行,或者您是否必须创建一个具有属性“PortName”的新类“MyPort”并创建一个 BindingList。跨度>
  • ComportListbox.items.add 确实有效,但问题是端口字符串为空
猜你喜欢
  • 1970-01-01
  • 2013-07-15
  • 2020-06-11
  • 1970-01-01
  • 2023-04-04
  • 2011-05-16
  • 2021-12-30
  • 2011-03-28
  • 1970-01-01
相关资源
最近更新 更多