请教python如何读取串口AT命令的返回值
在使用python发送AT命令,读取返回值的时候遇到如下问题:
>>> ser = serial.Serial('COM4', timeout=5)
>>> ser.write('at+creg=?\r')
10L
>>> ser.readline()
'\r\n'
>>> ser.readline()
'+CREG: (0-3)\r\n'
>>> ser.readline()
'\r\n'
>>> ser.read()
'O'
>>> ser.readlines() <----这里会用满timeout的5s才返回下面的列表
['\r\n', '+CREG: (0-3)\r\n', '\r\n', 'OK\r\n']
而正常用软件的话应该返回:
+CREG: (0-3)
OK
求教该使用什么命令可以完整读取ser的返回值?
[解决办法]
line = []
while True:
for c in ser.read():
line.append(c)
if c == '\n':
print("Line: " + line)
line = []
break