我见过使用串口许多代码示例和人说他们太工作守则。 问题是,当我尝试它不工作的代码。
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任何其他方式?
所以这个故事的寓意是..初始化时打开端口。 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上工作。