繁体   English   中英

使用pySerial和Python 3.3

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM