首页 > 学院 > 操作系统 > 正文

树莓派+python+打印串口数据

2024-06-28 16:04:40
字体:
来源:转载
供稿:网友

python上手没两天,写一个正常的打印串口的程序耗费了我半天的时间,网上有很多关于树莓串口python小程序,多数是在串口助手这样的终端回显,而我想要树莓派时时打印出串口接收到的数据。在网上找了许多的文章,不尽人意。遇到了各种小问题。

第一个就是python PRint 不换行的问题,详细自行百度。

python2.x 版本需要在printf语句后面打逗号,换行是没有了,但是出现了时延和空格,以前的换行符变成了空格。

所以我选择了另一种打印不换行的替代方案,sys.stdout.write() 替换print,换行和空格解决了,时延又是一个问题。

第二个就是打印时延,让人很不爽快。

解决办法见链接  ,python -u 运行python 程序禁用stdout缓冲即可。

最后附上修改代码。

# -*- coding: utf-8 -*#python -u 启动,禁用stdout缓冲功能,不然打印有延时。  import serial  import time  import sys# 打开串口  ser = serial.Serial("/dev/ttyUSB0", 9600)  def main():      while True:          # 获得接收缓冲区字符          count = ser.inWaiting()          if count != 0:              # 读取内容并回显              recv =ser.read(count) #            print recv            sys.stdout.write(recv)            ser.write(recv)          # 清空接收缓冲区          ser.flushInput()          # 必要的软件延时          time.sleep(0.1)        if __name__ == '__main__':      try:          main()      except KeyboardInterrupt:          if ser != None:              ser.close() 


上一篇:分区理解

下一篇:路由和交换

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表