首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python从USB端口读取串行信号

使用Python从USB端口读取串行信号
EN

Stack Overflow用户
提问于 2020-05-27 05:25:20
回答 1查看 7.1K关注 0票数 1

我是个新手,所以我很抱歉我的问题是没受过教育的:我有一个USB设备,我知道ProductID和VendorID。据我所知,它应该是一个HID设备,发送一个串行流到我的计算机。我本打算用python编写一个脚本来读取该串行流,但我什么也没做。有没有办法让Python的串行库从PID和VID中找到设备?

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 05:47:39

你可以在OSX上找到:

代码语言:javascript
复制
tty
/dev/ttys000

或者:

代码语言:javascript
复制
$ who
trane    console  Sep  1 05:18 
trane    ttys000  Sep  1 05:19 
trane    ttys001  Sep  1 05:19

$ w
13:04  up 1 day,  7:46, 3 users, load averages: 1.85 2.02 3.87
USER     TTY      FROM              LOGIN@  IDLE WHAT
trane    console  -                Sun05   31:45 -
trane    s000     -                Sun05       - w
trane    s001     -                Sun05       9 -bash

您可以尝试如下所示:

代码语言:javascript
复制
import serial;
import io;
import time;
import os;

if __name__ == '__main__' :
    try :
        # configure the serial connections (the parameters differs on the device you are connecting to)
        with serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=1,
                       xonxoff=False, rtscts=False, dsrdtr=True) as s:
            for line in s:
                print(line)

    except :
        print('Program exit !')
        pass
    finally :
        ser.close()
    pass

或者:

代码语言:javascript
复制
import serial, sys
port = your_port_name
baudrate = 9600
ser = serial.Serial(port,baudrate,timeout=0.001)
while True:
    data = ser.read(1)
    data+= ser.read(ser.inWaiting())
    sys.stdout.write(data)
    sys.stdout.flush()

根据您的设备,您可以调整一些参数,如:

代码语言:javascript
复制
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62031686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档