首页 > 解决方案 > 在 Mac 上以单声道方式使用 USB COM 端口

问题描述

我为我的项目编写了一个 Windows 应用程序,它有助于使用虚拟 COM 端口与微控制器进行串行通信。这非常简单——芯片制造商 (atmel) 提供了 USB 驱动程序(Windows 10 甚至不需要,只有较低版本)并且访问端口是一些基本代码。

但是我希望它也可以在其他系统上工作,主要是 osx。我刚刚发现了 mono,通过 mono 迁移分析器运行了我的应用程序,令我高兴的是,除了几次调用之外,该应用程序相对较好(我认为只有几个问题我可以解决)。

仍然存在两个大问题:

  1. 如何使用单声道访问 mac com 端口?据此,并不容易。
  2. 即使我能得到正确的串口,我该如何与之通信呢?Atmel 只提供 Windows 驱动程序,所以恐怕根本行不通。

我在 avr 论坛上就第二个问题提出了类似的问题,一位乐于助人的用户回答说:

可能就像将 macOS 的 USB 设备文件系统“以某种方式”链接到 Mono 的运行时一样简单。

我必须可耻地说我不确定这意味着什么,以及我是否完全可以实现 - 以我有限的编程知识和基本上没有使用 osx 的经验。所以恐怕像Class Compliance这样的解决方案是我无法企及的。

提前致谢!

标签: c#mono

解决方案


回答我自己的问题:

  1. 我设法使用 SerialPort.GetPortNames() 访问了这些端口 - 其中有很多(列出了几十个),但是它确实有效,并且连接我的设备的端口有一个不同的名称。仍然有一些问题需要解决,主要是识别端口是否真的处于活动状态(即使在我关闭设备而不拔掉 USB 电缆后它仍然列出),但使用名称连接到串行端口是可行的。
  2. 与我的 xmega mcu 的通信不需要驱动程序,开箱即用。

推荐阅读