gpt4 book ai didi

python - 如何使用 PySerial 将整数写入端口

转载 作者:太空狗 更新时间:2023-10-29 22:30:22 25 4
gpt4 key购买 nike

我正在尝试使用 PySerial 将数据写入第一个串行端口 COM1。

import serial
ser = serial.Serial(0)
print (ser.name)
ser.baudrate = 56700
ser.write("abcdefg")
ser.close()

应该工作。但是,我需要不断发送 28 个字节的整数;在表格中

255 255 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

循环,每个整数使用一个字节的数据。

尝试:

import serial
ser = serial.Serial(0)
print (ser.name)
ser.baudrate = 56700
while True:
ser.write(255 255 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000)
ser.close()

引发语法错误

如果 write,如何将整数写入串口?只发送字符串?如何确保每个数字都以 8 位发送?

very little in the documentation for the class serial ,所以任何帮助将不胜感激。

最佳答案

首先,编写 123 12 123 123 123 不是有效的 Python 语法。

用整数创建一个列表或元组:values = (1,2,3,4,5)

现在,我们需要将该数据转换为代表我们值的二进制字符串。

那么我们是怎么做的

import struct

values = (1,2,3,4,5)

string = b''

for i in values:
string += struct.pack('!B',i)

# Now send the string to the serial port

根据每个数字要使用多少字节,您需要对它们进行不同的打包。请参阅此处的文档:https://docs.python.org/3/library/struct.html

关于python - 如何使用 PySerial 将整数写入端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24956308/

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