使用pySerial与Python 3.3(Using pySerial with Python 3

2019-08-31 06:14发布

我见过使用串口许多代码示例和人说他们太工作守则。 问题是,当我尝试它不工作的代码。

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:端口已经打开”。 难道是我使用python3.3问题或有什么额外的我需要安设? 有没有办法使用COM端口,Python3.3任何其他方式?

Answer 1:

所以这个故事的寓意是..初始化时打开端口。 ser.open()因为串行端口已经被打开失败ser = serial.Serial(.....) 这是一两件事。

另一个问题了有ser.write(0xAA) -我想到这意味着“发送一个字节和0xAA”,其实际所做的是送170(和0xAA)为零。 在功能上write ,我看到以下内容: data = bytes(data) ,其中数据是你传递参数。 似乎功能字节()不带字符串作为参数因此不能直接发送字符串: serial.write()ser.write(bytearray(TheString,'ascii'))做这项工作。

虽然我正在考虑加入:

if(type(data) == type('String')):
    data = bytearray(data,'ascii')

ser.write()尽管这会使我的代码不能在其他PC上工作。



文章来源: Using pySerial with Python 3.3