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

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

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

  1. 读取串口设备列表:list(serial.tools.list_ports.comports())
  2. 初始化串口对象:ser=serial.Serial()
  3. 打开串口:ser.isOpen()
  4. 发送数据:ser.write()
  5. 读取数据:ser.read()
  6. 关闭串口: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 timeimport serial.tools.list_portsif __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))# 等待串口返回信息并输出t0 = time.time()while True:com_input = ser.read(10)t1 = time.time()t = t1 - t0print("\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编程调用设备串口发送数据相关推荐

  1. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

  2. electron+node+node-serialport nodeJs向串口发送数据,自定义收银客显设备

    文章目录 一.前言 二.了解客显设备 三.开始操作 index.html main.js 一.前言 electron+node+node-serialport 实现串口通信+electron-buil ...

  3. C#.NET的界面编程--实例4:使用串口发送数据

    目录 一.[程序实现] 步骤1.先设计窗口,把各种需要的控制布局在窗口内 步骤2.制定应用的功能方案 步骤3.制定后台逻辑 二.[运行效果] 本节主要介绍了c# 使用线程对串口serialPort进行 ...

  4. MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据

    MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据 [目录] - 1.无线通信模块设置 - 1.1 设置参数 - 1.2 调试步骤 - 2.按键与通信格式 - 2.1 P ...

  5. STM32串口发送数据

    串口通信经常作为开发调试的工具,所以先介绍下串口通信. 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程 ...

  6. C#串口通信—向串口发送数据,同步接收返回数据

    最近写C#串口通信程序,系统是B/S架构.SerialPort类有一个DataReceived事件,用来接收串口返回的数据,但这种方式在C/S架构下很好用,但B/S就不好处理了.所以写了一个同步模式接 ...

  7. 服务器多线程定时发送消息,C++Socket 多线程编程 定时和定量发送数据

    C++Socket 多线程编程 定时和定量发送数据 C++Socket 多线程编程 定时和定量发送数据 C++ Socket API中 发送函数Send和接收函数Recv函数的调用不一定是1对1的关系 ...

  8. 新手入门上位机开发 C#语言:PC串口发送数据

    题目概述: VS2017开发环境 PC串口发送数据 编程: namespace _004_7_28 { public partial class Form1 : Form {public Form1( ...

  9. STM32串口发送数据和接收数据方式总结

    文章目录 串口发送数据 串口接受数据 串口发送数据 1.串口发送数据最直接的方式就是标准调用库函数 . void USART_SendData(USART_TypeDef* USARTx, uint1 ...

最新文章

  1. 那天有个小孩跟我说LINQ(五)转载
  2. 基于nuxt和iview搭建OM后台管理系统实践(2)-quill富文本组件的封装
  3. [云炬创业管理笔记]第二章成为创业者讨论1
  4. Android 测试支持库 1.0 现已发布!
  5. 计算机网络udp实验时间戳请求报文与应答报文的表格填写,自考计算机网络管理历年(2007.1-2013.1)试题及答案(标有页码)...
  6. JS (intermediate value).Format is not a function问题解决
  7. 图谱实战 | 基于半结构化百科的电影KG构建、查询与推理实践记录
  8. OpenStack精华问答 | NOVA计算服务
  9. 库克也有手机瘾:每天拿起iPhone200次 比预想多一倍
  10. XenApp/XenDesktop 7.11 对于HDX 3D pro的2点增强
  11. arm 基于qcamera实现_面向HPC和笔记本市场 ARM发Cortex A78C增强版
  12. 重学C++语言之路:C++语言学习工具和环境
  13. 预定义类型未定义或导入_探索类型系统的底层 - 自己实现一个 TypeScript
  14. 精品推荐:【CKEditor】全球最优秀的网页在线文字编辑器之一
  15. ACCESS网上书店数据库系统
  16. python图像识别生成矢量图_Python matplotlib图片转化成矢量图并裁剪 - 小众知识
  17. ps去水印教程_PS去水印教程:运用色彩原理去除半透明水印
  18. 大数据征信进入洗牌期,区块链或成新一代征信系统底层架构
  19. Java精品项目源码第94期房屋租赁管理系统
  20. 苹果cmsv10仿91美剧网自适应收录好的免费模板

热门文章

  1. 如何绘制算法流程图?常见渠道一览
  2. Pytorch详解NLLLoss和CrossEntropyLoss
  3. 韩服 永恒之塔 验证码识别实例测试[非商业用途]
  4. 网友:看到 955 不加班的公司名单,我酸了...
  5. 三十而立之年献给自己的礼物——17年IT坎坷路之忆当年 下篇
  6. Shell编程三剑客之awk
  7. 百度二级域名批量绑定软件,绕过验证码错误机制
  8. 无刷直流电机矢量控制(一):概念和流程梳理
  9. 【毕设参考】ESP32 + HaaS Python 打造在线空气质量检测器
  10. Gerrit version 2.16.15 is now available.