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转串口模块连接到单片机,

运行结果

总结

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

相关文章

  • IPython库中的display函数的简介、使用方法、应用案例详细攻略

    IPython库中的display函数的简介、使用方法、应用案例详细攻略

    display 函数可以接受一个或多个参数,每个参数都是一个 Python 对象。它会自动根据对象的类型选择合适的显示方式,并在 Jupyter Notebook 中显示出来,这篇文章主要介绍了IPython库中的display函数的简介、使用方法、应用案例详细攻略,需要的朋友可以参考下
    2023-04-04
  • 基于Python实现的扫雷游戏实例代码

    基于Python实现的扫雷游戏实例代码

    这篇文章主要介绍了基于Python实现的扫雷游戏实例代码,对于Python的学习以及Python游戏开发都有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • 理解Python中的类与实例

    理解Python中的类与实例

    这篇文章主要介绍了Python中的类与实例,类与实例的概念是Python学习当中的基础知识,需要的朋友可以参考下
    2015-04-04
  • Python使用pandas导入xlsx格式的excel文件内容操作代码

    Python使用pandas导入xlsx格式的excel文件内容操作代码

    这篇文章主要介绍了Python使用pandas导入xlsx格式的excel文件内容,基本导入是在Python中使用pandas导入.xlsx文件的方法是read_excel(),本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 如何写python的配置文件

    如何写python的配置文件

    在本篇文章里小编给大家分享了关于python写配置文件方法,对此有兴趣的朋友们可以学习参考下。
    2020-06-06
  • python+flask实现API的方法

    python+flask实现API的方法

    这篇文章主要为大家详细介绍了python+flask实现API的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python之pymysql的使用小结

    Python之pymysql的使用小结

    这篇文章主要介绍了Python之pymysql的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python实现类似比特币的加密货币区块链的创建与交易实例

    Python实现类似比特币的加密货币区块链的创建与交易实例

    本文讲解了Python实现类似比特币的加密货币区块链的创建与交易实例方法
    2018-03-03
  • 使用Python处理Excel文件并将数据存储到PostgreSQL的方法

    使用Python处理Excel文件并将数据存储到PostgreSQL的方法

    在日常工作中,我们经常会遇到需要处理大量文件并将数据存储至数据库或整合到一个文件的需求,本文将向大家展示如何使用Python处理Excel文件并将数据存储到PostgreSQL数据库中,需要的朋友可以参考下
    2024-01-01
  • 详解Python对JSON中的特殊类型进行Encoder

    详解Python对JSON中的特殊类型进行Encoder

    这篇文章主要介绍了详解Python对JSON中的特殊类型进行Encoder,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论