0

我有一个 .NetCore 程序,它使用 Hid 协议与 FTDI 芯片交互,使用在 Linux 平台上使用 hidraw 的库 HidSharp 代码在 Windows 上完美运行。

现在我正在努力在 Linux 平台上启用现有代码,但我遇到了一个奇怪的问题。该设备正在使用 i2c,当我发送准备读取请求的写入缓冲区时,Linux 机器冻结,只有手动关闭和重新启动才能检索它。

我采用了相同的逻辑并使用 hidapi 库在 python 中实现,它使用 libusb 工作,但是当我将 hidapi lib 定位为使用 hidraw 时 - 发生了同样的问题并且机器死机了。

我的问题是:什么会造成这种行为,我该如何解决?

最小的可重现代码是:

import hid
i2c = hid.device()
i2c.open_path(b'dev/hidraw0')
i2c.write([0xD0, 0x7C, 0x02, 1, 0xE2]) // Write works here
i2c.write([0xC2, 0x7C, 0x07, 3, 0])    // this is read request - machine freeze here
rawData = i2c.read(64)
4

0 回答 0