gpt4 book ai didi

python - Pyserial 发送超过一个字节

转载 作者:太空狗 更新时间:2023-10-29 12:17:56 24 4
gpt4 key购买 nike

第一次海报。

在我开始之前,我只想说我是一个初学者,所以请耐心等待,但我仍然可以很好地跟进。

我有一个名为 Pololu Wixel 的无线设备,它可以无线发送和接收数据。我正在使用其中的两个。一个发送一个接收。它是 USB 接口(interface),因此可以直接插入我的 Raspberry Pi 或 PC,所以我所要做的就是通过终端连接到 COM 端口,以读取和写入数据。它带有一个测试终端程序,允许我发送 1-16 字节的信息。我已完成此操作,并且已毫无问题地发送和接收 2 个字节(这是我需要的)。

现在这是我的问题:当我打开 Ubuntu 终端并使用 Pyserial 连接到正确的发送 Wixel COM 端口并写入一个大于 255 的值时,我的接收 COM 端口连接到另一个终端实例也使用Pyserial,没有读取正确的值,因此我认为我无法读取和写入两个字节,而只能读取一个。在在线阅读 pyserial 文档后,我相信,但不知道 Pyserial 一次只能读写 5、6、7 或 8 位。

我希望我的问题现在很明显了。我怎么能把 2 个字节的信息写入我的设备的 COM 端口,并将它发送到另一个需要读取这 2 个字节的设备,所有这些都使用 pyserial?

我希望这一切都有意义,如果有任何帮助,我将不胜感激。

谢谢

更新好的,我想我现在已经开始了。所以我做了:

import serial

s=serial.Serial(3) //device #1 at COM Port 4 (sending)
r=serial.Serial(4) //device #4 at COM Port 5 (receiving)

s.timeout=1
r.timeout=1

s.write('0x80')
r.readline()
//Output said: '0x80'

s.write('hh')
r.readline()
//Output said: 'hh'

老实说,我认为这解决了我的问题。也许一开始就没有问题。也许我可以从程序中取出我的 16 位二进制数据,例如“1101101011010101”,将其转换为字符(我之前看到过一个叫做 char() 的东西)

然后使用 s.write('WHATEVER')然后使用 r.readline() 并转换回二进制

最佳答案

您可能需要将您的数字分成多个字节,并以小端或大端顺序发送这些片段。

如:

low_byte = number % 256
high_byte = number // 256

这应该让你达到 65535。你可以用 high_byte * 256 + low_byte 重构另一边的数字。

关于python - Pyserial 发送超过一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com