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

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

原创  2017年02月11日 16:19:34

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

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

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

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

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

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

最后附上修改代码。

[python]  view plain  copy
  1. # -*- coding: utf-8 -*  
  2. #python -u 启动,禁用stdout缓冲功能,不然打印有延时。    
  3. import serial    
  4. import time    
  5. import sys  
  6. # 打开串口    
  7. ser = serial.Serial("/dev/ttyUSB0"9600)    
  8. def main():    
  9.     while True:    
  10.         # 获得接收缓冲区字符    
  11.         count = ser.inWaiting()    
  12.         if count != 0:    
  13.             # 读取内容并回显    
  14.             recv =ser.read(count)   
  15. #            print recv  
  16.             sys.stdout.write(recv)  
  17.             ser.write(recv)    
  18.         # 清空接收缓冲区    
  19.         ser.flushInput()    
  20.         # 必要的软件延时    
  21.         time.sleep(0.1)    
  22.         
  23. if __name__ == '__main__':    
  24.     try:    
  25.         main()    
  26.     except KeyboardInterrupt:    
  27.         if ser != None:    
  28.             ser.close()   
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值