我用Python写一个程序,它的工作原理是这样的:Python的错误If-Then语句
- 以输入字符串通过串行端口,时按Enter(回车)
- 检查
$
签署输入字符串的第一个字符然后继续(如果存在) - 删除除
numerics
和,
之外的所有不需要的字符和字母,然后将其打印出来。
问题
程序卡住了,如果要是它获取输入字符串$
$
标志是不存在输入字符串,因为下一次,它不打印值
亲切审查我代码如下,并指导我如何解决它?
CODE
import serial,re
x = [0,0,0]
ser = serial.Serial('/dev/ttyAMA0', 9600)
buffer = ''
while True:
buffer += ser.read(ser.inWaiting())
if '\n' in buffer:
if buffer[0] == '$':
x= re.sub("[^0-9\,]","", buffer)
x1 = x.rstrip()
x2= x1.split(",")
print((x2[0]),(x2[1]),(x2[2]))
buffer = ""
每次通过循环时,您都将添加到缓冲区的末尾。这不会改变缓冲区的开始。所以如果第一次没有以'$'开始,它永远不会。 – Barmar
从描述中不清楚你应该做什么,如果它不以'$'开头。也许你应该跳出循环? – Barmar