将pySerial与Python 3.3结合使用

2024-05-08 06:40:39 发布

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

我见过很多使用串行端口的代码示例,人们说他们也在使用代码。问题是,当我尝试代码时它不起作用。

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的问题还是有什么额外的东西需要安装?Python3.3有没有其他使用COM端口的方法?


Tags: 端口代码import示例portserialserodd
1条回答
网友
1楼 · 发布于 2024-05-08 06:40:39

所以这个故事的寓意是。。端口在初始化时打开。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上工作

相关问题 更多 >