【发布时间】:2011-08-24 12:21:45
【问题描述】:
我最近购买了 TrendNet TU-S9 USB 到 RS232 转换器。我需要与使用 9600 波特的 RS232 的微控制器交谈。我为 Linux 机器提供的代码工作正常。我根据笔记本电脑和运行 OS X 10.6.7 的 Mac Mini 上的说明安装了驱动程序。我将设备更改为 /dev/cu.usbserial。
这就是发生的事情。我第一次尝试时,确实看起来沟通会起作用。但是,如果我退出该过程,我将无法再写入串行设备。如果我拔掉USB连接并重新插入,那么我可以再去一次。 IE。看起来需要插入 USB 连接器才能将其重置为可用状态。
当我第二次尝试启动进程时遇到错误时,我可以打开设备,但是当我第一次尝试通过串行接口发送字节时发生错误。 perror 的错误是“序列:没有这样的文件或目录”。
我可以通过编写第二个程序来解决这个问题,该程序仅打开 cu.usbserial 设备然后永远循环。不过,这似乎不是解决问题的最佳方法。
有人见过这种行为吗?任何人都可以复制它吗?有人知道怎么解决吗?
注意:这可能与之前的帖子 Programmatically talking to a Serial Port in OS X or Linux 有关,也可能不相关。
埃里克
【问题讨论】:
-
如果您使用已知良好的终端程序打开设备,退出,然后再次打开,您是否会看到相同的重新打开失败?如果是这样,他们的内核驱动程序中可能存在错误。那些最终用户可以在 OSX 上重新编译吗?如果不是,您可能需要与供应商合作或尝试不同的品牌,或者按照您的代理过程的想法(尽管您可以使用 select() 而不是循环)
标签: macos usb serial-port