首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:向串口写入和从串口读取

Python:向串口写入和从串口读取
EN

Stack Overflow用户
提问于 2013-10-03 01:44:29
回答 2查看 129.5K关注 0票数 7

我已经阅读了文档,但似乎找不到关于这个问题的直接答案。我有连接到计算机的调制解调器正在使用的所有COM端口的列表。从这个列表中,我尝试打开它,向它发送一个命令,如果它说了什么,就把它添加到另一个列表中。我不能完全确定我是否正确地使用了pyserial的读写函数。

代码语言:javascript
复制
i=0
for modem in PortList:
    for port in modem:
        try:
            ser = serial.Serial(port, 9600, timeout=1)
            ser.close()
            ser.open()
            ser.write("ati")
            time.sleep(3)
            print ser.read(64)
            if ser.read(64) is not '':
                print port
        except serial.SerialException:
            continue
        i+=1

我没有从ser.read()得到任何东西。我总是收到空白字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-03 02:05:14

ser.read(64)应为ser.read(size=64);ser.read使用关键字参数,而不是位置。

另外,您从端口读取了两次;您可能想要这样做:

代码语言:javascript
复制
i=0
for modem in PortList:
    for port in modem:
        try:
            ser = serial.Serial(port, 9600, timeout=1)
            ser.close()
            ser.open()
            ser.write("ati")
            time.sleep(3)
            read_val = ser.read(size=64)
            print read_val
            if read_val is not '':
                print port
        except serial.SerialException:
            continue
        i+=1
票数 8
EN

Stack Overflow用户

发布于 2015-05-19 17:09:24

这是一段使用python读取rs232的代码,以防其他人需要它

代码语言:javascript
复制
ser = serial.Serial('/dev/tty.usbserial', 9600, timeout=0.5)
ser.write('*99C\r\n')
time.sleep(0.1)
ser.close()
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19143360

复制
相关文章

相似问题

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