【发布时间】:2012-06-29 19:54:54
【问题描述】:
我正在从同一个串行端口写入和读取。这就是问题所在:
当我一个接一个地写入串口时,如下面的代码:
import serial
import array
rec = serial.Serial()
trans = serial.Serial()
rec.port = "/dev/ttyUSB0"
rec.baudrate = 9600
rec.timeout = 0.5
rec.open()
trans.port = "/dev/ttyUSB0"
trans.baudrate = 9600
trans.timeout = 0.5
trans.open()
if trans.isOpen():
trans.write("\xFE\x1D\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE2")
trans.write("\xFE\x1D\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE3")
while rec.isOpen():
response = rec.readline()
etc. etc. etc
只要 while 循环转动,我就一直只读取第一个发送的字符串。我也尝试在while循环之后发送数据:(我没有删除if语句)
while rec.isOpen():
trans.write("\x00\x00")
response = rec.readline()
我从串口读取的还是:
"\xFE\x1D\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE2"
除了第一个之外,我无法发送任何其他数据。为什么会这样?我该怎么办?
注意:同样在 while 循环中,我尝试阅读两次: 响应 = rec.readline() 响应 = rec.readline()
这一次,当我打印读取的数组时,它会打印 [],这意味着我无法读取任何内容。 问候
编辑:现在我使用了两个不同的 USB 端口 ttyUSB0 和 ttyUSB1 来检查我的问题是否与这种情况有关。但是从同一个端口写入和读取似乎没有什么问题。
【问题讨论】:
标签: python serial-port pyserial