使用Python和pyserial挂起读取串行端口

使用Python和pyserial挂起读取串行端口,python,arm,freeze,pyserial,Python,Arm,Freeze,Pyserial,更正——我使用的是第一个tty——而不是旧版本中的5 我正在编写一个程序,允许TS-4200-8160嵌入式arm计算机响应串行数据。我的第一步是记录一些串行数据。因此,我一直在测试TS-4200-8160的串行日志脚本。脚本一开始很好,收集单个字符,然后在收集数十个字符后挂起读取(因此它确实工作了一段时间): 少了什么?谢谢你的帮助 我只是放了一些打印报表来检查。它挂在read()上,在完成数十次成功读取后(一百次?我还没有计算)。感谢您的建议。您确定还有更多数据要读取吗?是的,我已将串行端口

更正——我使用的是第一个tty——而不是旧版本中的5

我正在编写一个程序,允许TS-4200-8160嵌入式arm计算机响应串行数据。我的第一步是记录一些串行数据。因此,我一直在测试TS-4200-8160的串行日志脚本。脚本一开始很好,收集单个字符,然后在收集数十个字符后挂起读取(因此它确实工作了一段时间):


少了什么?谢谢你的帮助

我只是放了一些打印报表来检查。它挂在read()上,在完成数十次成功读取后(一百次?我还没有计算)。感谢您的建议。您确定还有更多数据要读取吗?是的,我已将串行端口连接到pc,并且正在终端会话中键入。您是否尝试使用minterm或类似工具,以确保您的设备正常工作?
import serial
from datetime import datetime
import time, struct
import sys


def fileout(mesg):
    with open('/root/python/rs485cap.out', 'a') as f:
    f.write(mesg)

def main():
    ser = serial.Serial( 
        port=0, 
        baudrate=115200, 
        parity=serial.PARITY_NONE, 
        stopbits=serial.STOPBITS_ONE, 
        bytesize=serial.EIGHTBITS, 
        timeout=None
    ) 

    try:
        while 1:
        print ser.portstr
        stuff=ser.read()
        fileout(stuff + ", "+str(datetime.now()) + '\n')
         print stuff


    except KeyboardInterrupt:
        print "Bye"
        ser.close()
        sys.exit()
        ser.close() 

     ser.close()


if __name__ == '__main__':
main()