神奇的python(六)之python的串口操作(pyserial)

简介:最近项目突然要使用python串口操作,这不,查资料,翻文档,是时候写一份串口操作的简要用法,以后有时间可以使用pyqt再写个界面,弄个串口调试终端。

(1) 安装pyserial库

pip install pyserial

(2) pyserial库常用函数介绍

serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200,COM1只适用于Windows

serial = serial.Serial(‘/dev/ttyS0’, 115200) 打开/dev/ttyS0并设置波特率为115200, 只适用于Linux

print serial .portstr 能看到第一个串口的标识

serial .write(“hello") 往串口里面写数据

serial .close() 关闭serial 表示的串口

serial .open() 打开串口

data = serial .read(num) 读num个字符

data = serial .readline() 读一行数据,以/n结束,要是没有/n就一直读,阻塞。

serial .baudrate = 9600 设置波特率

print serial 可查看当前串口的状态信息

serial .isOpen() 当前串口是否已经打开

serial.inWaiting() 判断当前接收的数据

serial.flushInput() 清除输入缓冲区数据

serial.flushOutput() 中止当前输出并清除输出缓冲区数据

(3) 实例: 获取从其他串口发送来的数据并回显

#!/usr/bin/python
# coding=UTF-8

import serial

###################################################
#
# 功 能: 将接收到的数据已hex显示
# 参 数: 串口接受到的数据
# 返 回: 转换后的数据
#
###################################################

def hexshow(data):
    hex_data = ''
    hLen = len(data)
    for i in xrange(hLen):
        hvol = ord(data[i])
        hhex = '%02x' % hvol
        hex_data += hhex+' '
    print 'hexshow:', hex_data


###################################################
#
# 功 能: 将需要发送的字符串以hex形式发送
# 参 数: 待发送的数据
# 返 回: 转换后的数据
#
###################################################

def hexsend(string_data=''):
    hex_data = string_data.decode("hex")
    return hex_data



if __name__ == '__main__':
    serial = serial.Serial('/dev/ttyS0', 115200)
    print serial
    if serial.isOpen():
       print("open success")
    else:
        print("open failed")


    try:
        while True:
            count = serial.inWaiting()
            if count > 0:
                data = serial.read(count)
                if data != b'':
                    print("receive:", data)
                    serial.write(data)
                else:
                    serial.write(hexsend(data))
    except KeyboardInterrupt:
        if serial != None:
            serial.close()


以下隐藏内容为源代码,有需求可以下载,当作是对本站的支持,谢谢。

参考源码下载:https://download.csdn.net/download/absinjun/10582891
[erphpdown]解压密码:ZMJPY123[/erphpdown]

  • 20
    点赞
  • 240
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值