【Python】简单的串口收发数据

发布时间:2019-09-17 07:43:32编辑:auto阅读(2649)

    实现效果:
    Python端运行的时候打开COM3,然后准备从键盘获取数据,并发送,同时接收串口调试助手COM1发送过来的数据

    Python端:

    这里写图片描述

    串口调试助手:
    这里写图片描述
    串口调试助手使用COM1,能显示Python端发过来的数据,当点击发送的时候,Python端暂时不会显示,因为Python端的读取键盘那个方法是堵塞的,当Python端发送的时候才同时把数据显示出来(如果想一发送就显示,就把读取键盘的那句代码注释掉就可以了):

    由于我不是很专业,所以我尽量用我自己理解的语言讲解,可以跟我一起操作。

    一、前期准备工作。
    1、安装pyserial(类似于java的库,用于调串口函数)
    2、安装VSPD(因为没有硬件,用这个虚拟串口)

    1、由于我用的是win7 64位,无法安装pyserial-2.7.win32.exe,所以参考了
    http://blog.csdn.net/xin_yu_xin/article/details/36933705
    的办法,安装源码,简单介绍一下,
    (1)将你电脑安装的Python程序目录放入系统的path路径
    开始菜单->右键计算机->属性->高级->环境变量->系统变量
    在系统变量里找到PATH,双击PATH,在结尾加上 “;D:\Python27”(D:\Python27是你的Python安装目录,不要引号)
    (2)解压下载的源文件
    点击https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz#md5=794506184df83ef2290de0d18803dd11下载,然后随便解压到某个目录下,在这个目录下按shift+右键空白处可以直接调出cmd,然后在命令行输入
    python setup.py install

    2、VSPD在西西下载就好了,百度一下什么都有,安装也不麻烦,不赘述。

    二、软件操作
    VSPD上把COM1和COM3的TXRX互相短接起来,具体操作就是在右边选择First port是COM1,Second port是COM3,顺序无所谓,然后点击Add pair就可以了,然后左边会显示出来,要删除的话选中COM,点右边下面那个删除(一般是这个串口被卡住了才这么干)。
    这里写图片描述

    三、代码
    Python的代码基本上我也是百度来的,由于很简单,就像我们沟通思路一样,直接就写出来了,所以随便找个目录,右键新建文本文档,改名为xxx.py,然后保存退出,右键这个文件,Edit with IDLE(如果没有就去Python官网下载Python安装),输入如下内容:

    # -*- coding: utf-8 -*-
    import serial
    
    #打开串口
    serialPort="COM3"   #串口
    baudRate=9600       #波特率
    ser=serial.Serial(serialPort,baudRate,timeout=0.5)  
    print "参数设置:串口=%s ,波特率=%d"%(serialPort,baudRate)
    
    #收发数据
    while 1:
        str = raw_input("请输入要发送的数据(非中文)并同时接收数据: ")
        ser.write((str+'\n').encode())
        print(ser.readline())#可以接收中文
        
    ser.close()  
    
    

    按F5运行即可

关键字