Python通过串口将数据写入Vellemank8090

2024-04-24 16:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

各位

我试图通过Python从中继板控制中继,并编写以下代码。不幸的是我总是出错。有人能告诉我我做错了什么吗?对于构造,我链接了文档(参见第二个链接)。我还发现了另一个帖子,有人试图从中继板读取数据(见第一个链接)。但代码对我也不起作用

致以最诚挚的问候 直到

翻译为www.DeepL.com/Translator 你知道吗

有用信息

Another post from stackoverflow about read data from Velleman K8090

Documentation for USB Relay Board (K8090) 以下是USB中继板(Velleman K8090)的文档

我的代码

import serial

ser = serial.Serial()
ser.baudrate = 19200
ser.port = 'COM4'
ser.data_bits = 8
ser.parity = 'N'
ser.stop_bits = 1
ser.flow_control = 'N'

ser.open()
print(ser.is_open)

print(str(bytearray([0x04, 0x11, 0x01, 0x00, 0x00, (((~(0x04 + 0x11 + 0x01 + 0x00 + 0x00)) + 0x01) & 0xff), 0x0f])))
data = str(bytearray([0x04, 0x11, 0x01, 0x00, 0x00, (((~(0x04 + 0x11 + 0x01 + 0x00 + 0x00)) + 0x01) & 0xff), 0x0f]))
ser.write(data)

ser.close()
print(ser.is_open)

输出:

是的 字节数组(b'\x04\x11\x01\x00\x00\xea\x0f') 回溯(最近一次呼叫): 文件“C:\Users\twiners\Desktop\K8090\u V2.py”,第16行,in 序列写入(数据) 文件“C:\Users\twiners\AppData\Local\Programs\Python\Python37-32\lib\site packages\serial\serialwin32.py”,第308行,写入 数据=到字节(数据) 文件“C:\Users\twinters\AppData\Local\Programs\Python37-32\lib\site packages\serial\serialutil.py”,第63行,单位为\u字节 raise TypeError('不支持unicode字符串,请编码为字节:{!r} '格式(seq)) TypeError:不支持unicode字符串,请将其编码为字节:“bytearray(b'\x04\x11\x01\x00\x00\xea\x0f')”


Tags: 文件数据代码pydata字节链接serial
1条回答
网友
1楼 · 发布于 2024-04-24 16:26:58

在python3中str创建一个unicode字符串(这与python2.7不同)。你可能想要bytes。像这样:

data = bytes(bytearray([0x04, 0x11, 0x01, 0x00, 0x00, (((~(0x04 + 0x11 + 0x01 + 0x00 + 0x00)) + 0x01) & 0xff), 0x0f]))

相关问题 更多 >