python编程调用设备串口发送数据方式

 更新时间:2023年09月06日 10:15:18   作者:乐观的lishan  
这篇文章主要介绍了python编程调用设备串口发送数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python调用设备串口发送数据

为了通过python编程控制串口发送数据给单片机,编写此程序

使用serial模块完成串口的读取和数据的收发

重点掌握以下几个api的使用方法

  • 读取串口设备列表:list(serial.tools.list_ports.comports())
  • 初始化串口对象:ser=serial.Serial()
  • 打开串口:ser.isOpen()
  • 发送数据:ser.write()
  • 读取数据:ser.read()
  • 关闭串口:ser.close()

完整代码

# !/usr/bin/env python
# -*- coding: utf-8 -*-
"""
# ============================================================
# @Date    : 2022/05/16 21:50:12
# @Author  : miles
# @Email   : lishan@st.xatu.edu.cn
# @File    : serial_demo.py
# @IDE     : PyCharm
# @Func    : Describes the function of the file
# @Note    : pip install pyserial
# ============================================================
"""
import time
import serial.tools.list_ports
if __name__ == '__main__':
    # 读取串口列表
    ports_list = list(serial.tools.list_ports.comports())
    if len(ports_list) <= 0:
        print("无串口设备")
    else:
        print("可用的串口设备如下: ")
        print("%-10s %-30s %-10s" % ("num", "name", "number"))
        for i in range(len(ports_list)):
            comport = list(ports_list[i])
            comport_number, comport_name = comport[0], comport[1]
            print("%-10s %-30s %-10s" % (i, comport_name, comport_number))
        # 打开串口
        port_num = ports_list[0][0]
        print("默认选择串口: %s" % port_num)
        # 串口号: port_num, 波特率: 115200, 数据位: 7, 停止位: 2, 超时时间: 0.5秒
        ser = serial.Serial(port=port_num, baudrate=115200, bytesize=serial.SEVENBITS, stopbits=serial.STOPBITS_TWO,
                            timeout=0.5)
        if not ser.isOpen():
            print("打开串口失败")
        else:
            print("打开串口成功, 串口号: %s" % ser.name)
            # 串口发送字符串数据
            data = "%d:%d" % (130, 1)
            print("发送数据: %s" % data)
            write_len = ser.write(data.encode('utf-8'))
            print("串口发出{}个字节".format(write_len))
            # 串口发送十六进制数据
            # data = 0xAB
            # print("发送数据: %X" % data)
            # write_len = ser.write(bytearray([data]))
            # print("串口发出{}个字节".format(write_len))
            # 等待串口返回信息并输出
            t0 = time.time()
            while True:
                com_input = ser.read(10)
                t1 = time.time()
                t = t1 - t0
                print("\r等待串口接收数据, %.2f 秒" % t, end="")
                if com_input or t >= 3:
                    if com_input:
                        print("\n%s" % com_input)
                    else:
                        print("\n%s" % "没有接收到任何数据")
                    break
            # 关闭串口
            ser.close()
            if ser.isOpen():
                print("串口未关闭")
            else:
                print("串口已关闭")

在电脑上插入USB转串口模块连接到单片机,

运行结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入浅析python定时杀进程

    深入浅析python定时杀进程

    这篇文章主要介绍了深入浅析python定时杀进程的相关资料,需要的朋友可以参考下
    2016-06-06
  • Python Collections库的高级功能使用示例详解

    Python Collections库的高级功能使用示例详解

    Python的collections库提供了一系列有用的数据类型,扩展了内建的数据类型,为开发者提供了更多高级功能,本文将深入探讨collections库的一些高级功能,通过详细的示例代码演示,帮助大家更好地理解和应用这些功能
    2023-12-12
  • 利用Python脚本实现ping百度和google的方法

    利用Python脚本实现ping百度和google的方法

    最近在做SEO的时候,为了让发的外链能够快速的收录,想到了利用ping的功能,google和百度都有相关的ping介绍,有兴趣的朋友可以去看看相关的知识。下面这篇文章主要介绍了利用Python脚本实现ping百度和google的方法,需要的朋友可以参考借鉴,一起来看看吧。
    2017-01-01
  • Python3 Post登录并且保存cookie登录其他页面的方法

    Python3 Post登录并且保存cookie登录其他页面的方法

    今天小编就为大家分享一篇Python3 Post登录并且保存cookie登录其他页面的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python中的标签编码和独热编码示例详解

    Python中的标签编码和独热编码示例详解

    标签编码是一种用于将分类列转换为数值列的技术,以便它们可以通过仅采用数值数据的机器学习模型进行拟合,这篇文章主要介绍了Python中的标签编码和独热编码,需要的朋友可以参考下
    2023-07-07
  • 五个简单有效的Python清理数据脚本分享

    五个简单有效的Python清理数据脚本分享

    通常情况下,在机器学习中的数据清理往往是一件令人头疼的事情,本文整理了一份清单,列出了5个常用的Python脚本,用于自动化数据清理,需要的可以参考一下
    2022-09-09
  • selenium自动化测试入门实战

    selenium自动化测试入门实战

    这篇文章主要介绍了selenium自动化测试入门实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python实现连接dr校园网示例详解

    Python实现连接dr校园网示例详解

    在校园里认证上网很麻烦需要web输入账号密码有时还会忘记web地址,所以为了解决这一问题,本文将为大家介绍通过Python实现校园网的连接,快来跟随小编一起学习吧
    2021-11-11
  • python 垃圾收集机制的实例详解

    python 垃圾收集机制的实例详解

    这篇文章主要介绍了 python 垃圾收集机制的实例详解的相关资料,希望通过本文能帮助大家理解这部分内容,需要的朋友可以参考下
    2017-08-08
  • Python探索之静态方法和类方法的区别详解

    Python探索之静态方法和类方法的区别详解

    这篇文章主要介绍了Python探索之静态方法和类方法的区别详解,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10

最新评论