【发布时间】:2015-03-08 23:42:44
【问题描述】:
我有一个连接到 Raspberry Pi 的设备。 Pi 正在运行 ARCH Linux。该设备通过 USB 与 Pi 进行通信。该设备必须通过脉冲打开和关闭,并且我可以从 Pi 控制引起该脉冲的继电器。但是我永远无法确定设备最初是打开还是关闭。
在我的代码中,我切换了继电器,然后推测性地在设备上调用 open()(带有标志 O_RDWR | O_NOCTTY)。问题是,如果我在设备关闭时执行此操作,则 open() 调用会挂起。我曾尝试在切换后等待 1 秒钟,以便解决问题,但这并没有帮助。我曾尝试在 open() 调用之前调用 stat() ,但这总是返回零(因此就 stat() 而言,设备就在那里)。我尝试在 open() 调用中指定 O_NON_BLOCK ,但这会导致它总是失败。
谁能建议(a)我做错了什么或(b)可靠的前进方式?
【问题讨论】:
标签: linux raspberry-pi