python串口教程_python3.7串口模块教程 - CSDN
  • 安装pyserialpip install pyserial查看可用的端口# coding:utf-8import serial.tools.list_portsplist = list(serial.tools.list_ports.comports())if len(plist) print("没有发现端口!") else: ...

    安装pyserial

    pip install pyserial

    查看可用的端口

    # coding:utf-8
    
    import serial.tools.list_ports
    
    plist = list(serial.tools.list_ports.comports())
    
    if len(plist) <= 0:
        print("没有发现端口!")
    else:
        plist_0 = list(plist[0])
        serialName = plist_0[0]
        serialFd = serial.Serial(serialName, 9600, timeout=60)
        print("可用端口名>>>", serialFd.name)

    所发十六进制需转换为以下格式

    # 所发十六进制字符串010591F50000F104
    cmd = [0x01, 0x05, 0x91, 0xF5, 0x00, 0x00, 0xF1, 0x04]

    串口通信
    Windows下端口为COM*, Ubuntu下为/dev/ttyS0

    import serial
    
    class Ser(object):
        def __init__(self):
            # 打开端口
            self.port = serial.Serial(port='COM4', baudrate=9600, bytesize=8, parity='E', stopbits=1, timeout=2)
    
        # 发送指令的完整流程
        def send_cmd(self, cmd):
            self.port.write(cmd)
            response = self.port.readall()
            response = self.convert_hex(response)
            return response
    
        # 转成16进制的函数
        def convert_hex(self, string):
            res = []
            result = []
            for item in string:
                res.append(item)
            for i in res:
                result.append(hex(i))
            return result
    展开全文
  • Python端: 串口调试助手: 串口调试助手使用COM1,能显示Python端发过来的数据,当点击发送的时候,Python端暂时不会显示,因为Python端的读取键盘那个方法是堵塞的,当Python端发送的时候才同时把数据...

    实现效果:
    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运行即可

    展开全文
  • Python串口模块pySerial - 简短的介绍2017-3-2 这一篇的教程好简陋,作者有在认真写吗。。。。。。为了方便理解,我在翻译过程中加了点说明。原味教程 打开串口我们打开一个串口,配置为“9600,8,N,1”(波特率,...

    Python串口模块pySerial - 简短的介绍

    2017-3-2

    这一篇的教程好简陋,作者有在认真写吗。。。。。。为了方便理解,我在翻译过程中加了点说明。原味教程


    打开串口

    我们打开一个串口,配置为“9600,8,N,1”(波特率,字节位数,是否有奇偶校验,),没有设置超时:

    >>> import serial
    >>> ser = serial.Serial('/dev/ttyUSB0')  # open serial port
    >>> print(ser.name)         # check which port was really used
    >>> ser.write(b'hello')     # write a string
    >>> ser.close()             # close port

    打开一个串口,配置为“19200,8,N,1”, 1s timeout:

    >>> with serial.Serial('/dev/ttyS1', 19200, timeout=1) as ser:
    ...     x = ser.read()          # read one byte
    ...     s = ser.read(10)        # read up to ten bytes (timeout)
    ...     line = ser.readline()   # read a '\n' terminated line

    打开一个串口,配置为“38400,8,E,1”, non blocking HW handshaking:

    >>> ser = serial.Serial('COM3', 38400, timeout=0,
    ...                     parity=serial.PARITY_EVEN, rtscts=1)
    >>> s = ser.read(100)       # read up to one hundred bytes
    ...                         # or as much is in the buffer

    之后再配置端口

    在配置或打开一个串口后,获得该串口的实例:

    >>> ser = serial.Serial()
    >>> ser.baudrate = 19200
    >>> ser.port = 'COM1'
    >>> ser
    Serial<id=0xa81c10, open=False>(port='COM1', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
    >>> ser.open()
    >>> ser.is_open
    True
    >>> ser.close()
    >>> ser.is_open
    False

    同样也受到context管理器的支持:

    serial.Serial() as ser:
        ser.baudrate = 19200
        ser.port = 'COM1'
        ser.open()
        ser.write(b'hello')

    Readline

    到我们在使用readline()的时候需要小心谨慎。在打开串口时要配置超时时间,否则如果没有新的一行数据输入,他可能会一直等待(原文说的是阻塞,都一样)。readline()依赖于超时时间和EOF引发的中断。如果串口没有正确打开的话,它会抛出一个异常。

    可以参考源代码压缩包中或在线的examples文件夹下的例程文件。

    注意:Python2.6及其以上版本中,当io模块可用时,EOF不再被readline()支持(也就是说必须依赖超时才能结束readline()的等待)。
    

    EOL

    为readline()指定EOL字符或者使用通用的’\n’字符,建议使用io.TextIOWrapper:

    import serial
    import io
    ser = serial.serial_for_url('loop://', timeout=1)
    sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser))
    
    sio.write(unicode("hello\n"))
    sio.flush() # it is buffering. required to get the data out *now*
    hello = sio.readline()
    print(hello == unicode("hello\n"))

    测试端口

    列出端口

    python -m serial.tools.list_ports将会打印出当前可用的端口。它也可以加一个正则表达式作为第一个参数,这样的话输出的列表只包含匹配到的端口。

    注意:这个枚举不能在所有的操作系统上起作用。他可能没被实现,列出不可用的端口或者缺失了端口的细节描述。(第一个和第三个我还能忍,“列出不可用的端口”这个算BUG么)
    

    访问端口

    pySerial包含了一个小型的console(基于名为serial.tools.miniterm的终端程序)。它能使用“python -m serial.tools.miniterm < port_name >”命令启动(使用-h可以列出所有选项)。

    展开全文
  • 寒假打算做个东西,需要用到串口通信,就百度教程,但是发现教程参差不齐,非常麻烦,什么下载这个下载那个,装什么minicom,简直了,于是在这里简化所有的步骤,一次搞定树莓派+python3+串口通信的开发!...

    寒假打算做个东西,需要用到串口通信,就百度教程,但是发现教程参差不齐,非常麻烦,什么下载这个下载那个,装什么minicom,简直了,于是在这里简化所有的步骤,一次搞定树莓派+python3+串口通信的开发!!!!!!

    首先把树莓派和电脑端链接起来,接线方式如下:

    如果不知道树莓派的串口在哪里,下面附上查看的命令:

    输入 gpio readall 的命令就可以看了,如果不知道树莓派引脚排列,欢迎去看我的另一个教程,专门有解释哦。

    ---------------------------------------------------------------------------------------------------------------------------------------------

    然后打开一个py文件,输入以下代码:

    # -*- coding:utf-8 -*-
    import serial
    import time
    ser = serial.Serial("/dev/ttyAMA0", 9600)  # 位置1
    ser.flushInput()  # 位置2
    ser.write("begin".encode("utf-8"))  # 位置3
    def main():
        while True:
            count = ser.inWaiting()  # 位置4
            if count != 0:
                recv = ser.read(count)  # 位置5
                ser.write("Recv some data is : ".encode("utf-8"))  # 位置6
                ser.write(recv)  # 位置7
                ser.flushInput()
            time.sleep(0.1)  # 位置8
    
    if __name__ == '__main__':
        main()

    下面一个一个解释:

    # 位置1:打开串口的命令,"/dev/ttyAMA0" 不一定是固定的,需要在这里查看

    后面的9600是波特率,常用的有 115200 9600,其他的默认设置就可以。

    # 位置2:先清空缓冲区域,省得有垃圾数据没有被接收影响我们的工作

    # 位置3:串口发送一个字符串,这里需要用到encode,因为write 这个方法发送以二进制发送,接受也是接收的二进制,所以才要编码为这个,当然,我的文件编码是utf-8。

    发送数据之后,还会返回一个整数,为发送的字符数量。

    # 位置4:得到当前未接收的数据有多少个

    # 位置5:将这么多数据全部读取出来。

    # 位置6、7:回显接收的数据。因为接收的也是字节流,所以不需要编码,直接就能发送出去。

    # 位置8:可以不要,但是为了不占用太多CPU资源,就可以适当写一下。

    # 要点:要用 sudo 权限运行,否则无法使用串口。

    就这么多即可完成串口通信,很简单吧。嘿嘿。

     

     

    展开全文
  • Python串口实时显示数据并绘图 使用pyserial进行串口传输 一、安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "‘E:\Anaconda3\Scripts\pip-script.py’ is not present....
  • 边学边写的。有收发 定时发 时间戳 功能,没有保存文件功能。 里边还包含了qt designer 的 .ui文件。 还有.png和.ico图标文件
  • Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载。参照了网上的教程,有许多用的pip的安装方式,但是试了几个都没有用,所以想到用GitHub下载库文件,步骤分为:1.在Github下载python-...
  • Python串口模块pySerial - Overview2017-3-2 人生苦短,我用Python。大家好,我是唐唐。作为一名在serial调试的坑里蹲了两年多的嵌入式软件开发者,串口调试一直是说不出的痛。最近突发奇想,为什么不用Python来做...
  • python串口编程

    2019-08-05 19:42:05
    通过python属性访问串口设置。 支持不同的字节大小、停止位、校验位和流控设置。 可以有或者没有接收超时。 类似文件的API,例如read和write,也支持readline等。 支持二进制传输,没有null消除,没有cr-lf转换。 三...
  • 应一位坛友建议,搞一个python版本的串口助手,首先了解下串口需要的插件是pyserial,这个直接pip install pyserial安装即可,很简单。安装完成后,我自己也测试了一下,功能是可以用的,先上图。   这充分说明了...
  • python3 开发串口工具 网上有很多相关的案例,后面会一一列举;以下为小白入坑记录用 开发环境: macOS Mojave 10.14 python3开发环境 到python官网download页面,找到现在最新版安装包: ...
  • 经过一天的探索终于解决了一个问题,就是在树莓派上用python代码来使用串口来通讯,看过了无数的教程 踩过了无数的坑,下面是我结合各个案例总结的设置方法。 参考链接: 1....
  • 说明:本代码经本人测试,stm89c51等开发板传感器采集数据发送到串口,实现读取并写入数据库,不懂之处大家留言,看见会及时回复大家。 问题咨询及项目源码下载请加群: 群名:IT项目交流群 群号:245022761 ...
  • python3+qt4+pyserial 串口调试助手 包含界面文件 一个简单的串口波形显示
  • 串口示波器python版.zip

    2020-07-30 23:31:40
    使用pyqt5平台创建的应用程序,可以实现和下位机的按照通信协议进行连接,使用方法,所需安装库,内容介绍教程详见https://blog.csdn.net/qq_41866091/article/details/88291129
  • Python语言串口的操作

    2016-05-09 14:29:57
    Python中有专门的串口操作模块pySerial,使用非常简单。 pySerial的资源网址https://pypi.python.org/pypi/pyserial, github资源和一些使用教程的网址:https://github.com/pyserial/pyserial 串口操作文档...
  • 串口助手Python界面版

    2020-03-14 18:59:35
    串口助手Python界面版1. 安装PyQt5:2. 把安装好的PyQt5环境配置到Pycharm中3. 设计串口助手3.1 界面设计3.2 QT界面转python代码3.3 写事件回调4. 小结 基于Python3、Qt5实现串口助手 设计参考...
  • 本文介绍Python的详细安装过程,以Python3.7.4为案例,详细介绍了从下载到安装的具体步骤。并包含双版本安装设置。
  • 转自这里写链接内容纯 arduino 新手,高手勿笑,月初买的 arduino 板, 前天开始折腾, 好有意思, 分享的这个挺基础,可是之前搜索就是没搜到类似的,摸索出来以后特别分享下:arduino 端还不知道怎么用 python ...
  • Python培训教程:基于Python的ModbusTCP客户端实现 Modbus协议是由Modicon公司(现在的施耐德电气Schneider Electric)推出,主要建立在物理串口、以太网TCP/IP层之上,目前已经成为工业领域通信协议的业界标准,...
1 2 3 4 5 ... 20
收藏数 2,806
精华内容 1,122
关键字:

python串口教程