前段时间在集成测试工具时,有一个问题忘记记录,今天有时间记录一下
提示:以下是本篇文章正文内容,下面案例可供参考
集成的开发工具在调试的发现偶现程序暂停问题,像是在哪里阻塞了,但是一直没想到关于read()函数(其实之前自己做了笔记),最后在大佬的指导下找到了原因
代码如下(示例):
ser = serial.Serial(sernum, bps) #创建串口实例对象,这样创建的对象没有超时
while True:
if ser.inWaiting() > 0:
r_text = ""
r_text = (ser.read(ser.inWaiting())) #这里如果没有接收到数据就会阻塞在这里
data += (r_text.decode("utf-8", "ignore")).strip()
print(data)
代码如下(示例):
ser = serial.Serial(sernum, bps,timeout=2) #创建串口实例对象,这样创建的对象有超时
while True:
if ser.inWaiting() > 0:
r_text = ""
r_text = (ser.read(ser.inWaiting())) #这里如果没有接收到数据超过2s就会往下执行
data += (r_text.decode("utf-8", "ignore")).strip()
print(data)
希望后面大家使用Serial串口时不要忘了timeout这个参数,否则很容易出现像我一样的问题
我是一名车载集成测试开发工程师,希望能和志同道合的朋友一起相互学习进步