我希望使用python以字节格式通过raspberry pi3的USB端口发送数据。这对我来说非常新。所以我不明白我该怎么做。需要安装什么软件包,如果有的话工作示例代码是他们当时任何人都可以共享。如何测试这些数据是否正确写入USB端口。请任何人都可以帮助我。
答案 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闪烁),并根据其内部程序进行操作。