记关于python的串口阻塞问题

记关于python的串口阻塞问题



注意下面
如果有车载讨论需要的小伙伴,可以私信加我微信,拉你进群,和同行业大佬交流
注意上面

前言

前段时间在集成测试工具时,有一个问题忘记记录,今天有时间记录一下


提示:以下是本篇文章正文内容,下面案例可供参考

一、关于Serial.read()

集成的开发工具在调试的发现偶现程序暂停问题,像是在哪里阻塞了,但是一直没想到关于read()函数(其实之前自己做了笔记),最后在大佬的指导下找到了原因

二、实际代码区别

1.没有timeout的创建

代码如下(示例):

ser = serial.Serial(sernum, bps)	#创建串口实例对象,这样创建的对象没有超时
while Trueif ser.inWaiting() > 0:
		r_text = ""
		r_text = (ser.read(ser.inWaiting()))	#这里如果没有接收到数据就会阻塞在这里
	    data += (r_text.decode("utf-8", "ignore")).strip()  
	    print(data)

2.timeout的创建

代码如下(示例):

ser = serial.Serial(sernum, bps,timeout=2)	#创建串口实例对象,这样创建的对象有超时
while Trueif ser.inWaiting() > 0:
		r_text = ""
		r_text = (ser.read(ser.inWaiting()))	#这里如果没有接收到数据超过2s就会往下执行
	    data += (r_text.decode("utf-8", "ignore")).strip()  
	    print(data)

希望后面大家使用Serial串口时不要忘了timeout这个参数,否则很容易出现像我一样的问题


写在结尾

我是一名车载集成测试开发工程师,希望能和志同道合的朋友一起相互学习进步

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值