在Raspberry pi 3中写入USB端口上的大量数据

时间:2016-12-14 08:48:01

标签: python-2.7 raspberry-pi3

我希望使用python以字节格式通过raspberry pi3的USB端口发送数据。这对我来说非常新。所以我不明白我该怎么做。需要安装什么软件包,如果有的话工作示例代码是他们当时任何人都可以共享。如何测试这些数据是否正确写入USB端口。请任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

USB不支持发送原始字节。这不是串口。 您必须连接一个声明自己为通信设备类的设备。设备和主机将用USB协议包装原始字节。

然后,您的操作系统会将其与端点关联。 在Linux下,第一个设备与/dev/ttyACM0相关联。 您所要做的就是写入此端点。 在bash下:echo some byte > /dev/ttyACM0

这是一个例子。我有一个arduino uno连接到我的Linux笔记本电脑。 这是内核所说的:

[37850.628522] usb 3-2: new full-speed USB device number 9 using xhci_hcd
[37850.759206] usb 3-2: New USB device found, idVendor=2341, idProduct=0043
[37850.759215] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[37850.759221] usb 3-2: Manufacturer: Arduino (www.arduino.cc)
[37850.759224] usb 3-2: SerialNumber: 12345678901234567890
[37850.759590] usb 3-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[37850.833630] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
[37850.834040] usbcore: registered new interface driver cdc_acm
[37850.834044] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters                

重要的部分是:ttyACM0

在python控制台中,我可以这样做:

with open("/dev/ttyACM0","w") as f:
    f.write("hello world")

Arduino确认收到字节(RX LED闪烁),并根据其内部程序进行操作。