Go 连接到usb设备

Go 连接到usb设备,go,serial-port,Go,Serial Port,我有一个设备通过usb-B连接到我的电脑。我有一段代码可以在windows上使用它 在windows上,我们通过vid和pid获得COM名称,并使用tarm/serial包进行连接。但我无法通过ttyACM0或ttyACM1以相同的方式连接到linux上的设备 我正在努力做到: &serial.Config{ Name: "/dev/ttyACM1", Baud: configuration.ReceiptPrinterBaud,

我有一个设备通过usb-B连接到我的电脑。我有一段代码可以在windows上使用它

在windows上,我们通过vid和pid获得COM名称,并使用
tarm/serial
包进行连接。但我无法通过
ttyACM0
ttyACM1
以相同的方式连接到linux上的设备

我正在努力做到:

&serial.Config{
            Name: "/dev/ttyACM1",
            Baud: configuration.ReceiptPrinterBaud,
            ReadTimeout: time.Second * 2,
        },
但是当我使用
(p*port)read()从端口读取时,我什么也没有得到。

很明显,我只是不发送字节。如何在linux上像在windows上一样与设备交互?

相关/重复:看起来像是驱动程序问题,在插入设备后立即键入
dmesg | grep/dev/tty*
,查看驱动程序是否已加载或您是否收到任何错误扫描您发布的有关设备的
lsusb-v
输出?可能是权限问题?这在linux上的串行设备中很常见。检查您的用户是否具有访问/dev/ttyACM1的权限。还要检查您是否正确处理了Go代码中的错误,如果这是问题所在,您应该能够看到权限被拒绝的错误。