【问题标题】:python pyserial writing more than once to serial portpython pyserial多次写入串口
【发布时间】: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


    【解决方案1】:

    问题可能是端口配置错误。您必须设置适当的值

    ser = serial.Serial(
        port='/dev/ttyUSB0',
        baudrate=9600,
        parity=???,
        stopbits=???,
        bytesize=???)
    

    【讨论】:

      【解决方案2】:

      我没有看到换行符,因此您应该尝试使用 rec.read(bytes) 或使用 \0d\0a 或其他内容完成行。

      http://pyserial.sourceforge.net/shortintro.html#readline

      【讨论】:

      • 嗯,我使用了 read(bytes) 它没有解决我的问题,但没有尝试你的第二个建议。这可能是我解释的问题的解决方案,但这对我来说不是一个持久的解决方案。因为当我的代码完成后,我不会使用此代码向端口发送数据。我将有一个传感器来发送数据,我会读取它,它不会发送任何类型的 EOL 数据。还有其他建议吗?
      • 另外我忘了说,我的传感器数据的长度是固定的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多