Python串行发送带有字节值的字节数组

问题描述 投票:0回答:1

我想通过 pyserial 发送这样的数组:

[49, 56, 48] or [82]

我在发送之前尝试过这样的解决方案:

print(list(str(180).encode()))

它给了我我想要的数组。但是当我尝试通过 pySerial 发送它时,它说我需要缓冲区而不是列表。一般来说,我试图从 kotlin 中获得一些类似物:

byteArrayOf('O'.code.toByte())


"70".toByteArray()

这给了我这样的数组来将它们发送到 Arduino。我尝试发送地图、字典等,但没有成功。 Python 中是否可以有类似的东西? python发送代码:

import json
import struct

import serial
ser = serial.Serial('/dev/tty.usbmodem14401', 9600)

data = [49, 56, 48]
ser.write(json.dumps(data) + '\n')
ser.write(str('R').encode())
ser.write(str(80).encode())
python arduino pyserial python-bytearray
1个回答
0
投票

这对我有用

import serial
import time

ser = serial.Serial('COM10', 115200, write_timeout=1)

time.sleep(4)   # Wait for Arduino to reboot

# bytes_to_send = [65]
bytes_to_send = [65, 66, 67, 68, 69]

count = 0
while True:
    for byte in bytes_to_send:
        ser.write([byte])
        print(f"{count} Sent {byte}")
        count += 1

需要四秒延迟,因为打开串口时 Arduino 会重新启动。

© www.soinside.com 2019 - 2024. All rights reserved.