gpt4 book ai didi

python - 如何使用 Python 将字节数组发送到串行端口?

转载 作者:太空狗 更新时间:2023-10-30 01:00:48 24 4
gpt4 key购买 nike

我正在开发一个需要使用 pyserial 模块将字节数组发送到串行端口的应用程序。我已经成功地在 canopy 中运行代码来执行此操作:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
ser.write([4, 9, 62, 144, 56, 30, 147, 3, 210, 89, 111, 78, 184, 151, 17, 129])
Out[7]: 16

但是当我在 Spyder 中运行相同的代码时(两者都运行 Python 2.7.6)我收到一条错误消息,如

import serial
ser = serial.Serial('/dev/ttyACM0', 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)
ser.write([4, 9, 62, 144, 56, 30, 147, 3, 210, 89, 111, 78, 184, 151, 17, 129])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 475, in write
n = os.write(self.fd, d)
TypeError: must be string or buffer, not list

我怎样才能让 Spyder 在这方面表现得像 Canopy?

最佳答案

看起来错误是由传递给 ser.write() 的对象类型引起的。似乎它被解释为列表而不是 Spyder 中的字节数组。

尝试将值显式声明为字节数组,然后将其写入串口:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)

values = bytearray([4, 9, 62, 144, 56, 30, 147, 3, 210, 89, 111, 78, 184, 151, 17, 129])
ser.write(values)

编辑:更正拼写错误。

关于python - 如何使用 Python 将字节数组发送到串行端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32018993/

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