[英]Using pySerial with Python 3.3
我已经看到许多使用串口的代码示例,人们说他们也在使用代码。 问题是,当我尝试代码时,它不起作用。
import serial
ser = serial.Serial(
port=0,
baudrate=9600
# parity=serial.PARITY_ODD,
# stopbits=serial.STOPBITS_TWO,
# bytesize=serial.SEVENBITS
)
ser.open()
ser.isOpen()
print(ser.write(0xAA))
它给我的错误是:“SerialException:Port已经打开”。 是我使用python3.3的问题还是我需要安装一些额外的东西? 有没有其他方法可以使用Python端口与Python3.3?
所以故事的寓意是......端口在初始化时打开。 ser.open()
失败,因为串口已经被ser = serial.Serial(.....)
打开。 这是一回事。
另一个问题是ser.write(0xAA)
- 我希望这意味着“发送一个字节0xAA”,它实际上做的是发送170(0xAA)零。 在函数write
,我看到以下内容: data = bytes(data)
其中data是您传递的参数。 似乎函数bytes()不接受字符串作为参数,因此不能直接使用: serial.write()
发送字符串,但ser.write(bytearray(TheString,'ascii'))
完成工作。
虽然我正在考虑添加:
if(type(data) == type('String')):
data = bytearray(data,'ascii')
在ser.write()
,虽然这会使我的代码无法在其他PC上运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.