pyserial 没有输出

No output from pyserial

我正在尝试使用 pyserial (v2.6) 编写一个代码,它应该无限期地等待来自使用 inWaiting() 指定端口的任何输入,然后使用 read() 读取它但是没有运气并且根本没有输出。我究竟做错了什么?该程序根本不打印任何内容!

编辑:程序和端口都是 运行 在 Contiki OS

的虚拟机上

Edit2:z1 mote 是连接到端口的设备。我发现 pyserial 用于写入它(我无法将 pyserial 升级到最新版本,因为它不会与 z1 motes 一起锻炼)

完整代码:

import pyserial
baudrate = 115200
port = '/dev/ttyUSB0' 
ser = serial.Serial(port,baudrate)

while 1:
    time.sleep(1)
    coming_data = ser.inWaiting()
    if coming_data != 0:
        data = ser.read(coming_data)
        print data

# the output from the port is (which should be the output of this program)
# abcd::abcd:0:0:c9 2293 6 -3 243 -23 108 
# abcd::abcd:0:0:c9 2337 8 -4 242 -27 108

请试试这个:

import serial
import sys
from time import sleep

try:
  ser = serial.Serial("/dev/ttyUSB0", 115200,timeout=0, parity=serial.PARITY_NONE, 
                        stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
except:
  sys.exit("Error connecting device")

while True:
  queue = ser.inWaiting()
  if queue > 0:
    data = ser.read(1000)
    print data
  sleep(0.2)

问题可能与未按预期为 Zolertia Z1 节点配置所有 UART 设置有关。

更新:请确保与端口的连接未被其他进程使用。因为如果它在其他地方打印,那么它将无法通过 python 脚本读取数据。