Python:解析pyserial串口通讯

简介:串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

历史攻略:

i2c-tools:让硬件通信更简单

IPMI开源库pyghmi基本使用

安装:

pip install pyserial

案例指引:

1、查询当前机器有哪些串口:

ls -al /dev/tty* | grep  USB

图片

2、进入串口调试模式

sudo minicom -D /dev/ttyUSB0

3、手工输入和返回尝试

图片

4、pyserial - demo:serial_demo.py

# -*- coding: utf-8 -*-
# time: 2024/4/7 23:31
# file: serial_demo.py
# 公众号: 玩转测试开发
import time
import serialclass SerialTool(object):def __init__(self, baudrate, bytesize, timeout=0):self.baudrate = baudrateself.bytesize = bytesizeself.timeout = timeoutself.ser = serial.Serial(self.baudrate, self.bytesize, timeout=self.timeout)def get_data(self, size=100, encoding_type=""):if encoding_type:data = self.ser.read(size).decode(encoding=encoding_type)else:data = self.ser.read(size).decode()return datadef get_all_data(self, encoding_type=""):if encoding_type:data = self.ser.read_all().decode(encoding=encoding_type)else:data = self.ser.read_all().decode()return datadef input_data(self, data):data = data.encode()print(f"input data: {str(data)}")self.ser.write(data)time.sleep(0.1)def reset_output_buffer(self):self.ser.reset_output_buffer()def test_write_read(self):self.ser.write(b"\n")time.sleep(0.1)data = self.get_data(100, "ascii")print(f"my test data: {data}")if __name__ == "__main__":baudrate = "/dev/ttyUSB0"bytesize = 115200timeout = 0my_ser = SerialTool(baudrate, bytesize, timeout)data = my_ser.get_data(100, "ascii")print(f"Before input. Get data:{data}")# my_ser.input_data("mw 0x0109010C 0x02f24500")my_ser.test_write_read()data2 = my_ser.get_data(100, "ascii")print(f"After input. Get data:{data2}")

运行结果:对比步骤3手工调试可知,

代码运行与手工输入回车都是返回 =>,说明调试成功。

图片

其他参考命令:退出串口调试, ctrl + A 然后松开后按 X 即可实现退出串口调试模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/650372.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 中Mybatis使用Like的使用方式和注意点

说明 模糊查询在项目中还是经常使用的,本文就简单整理Mybatis中使用Like进行模糊查询的几种写法以及一些常见的问题。 使用Springboot简单配置一下Mybatis,然后进行说明。Springboot集成Mybatis这里就不做介绍了,这里我们主要介绍一下在mybat…

简单把玩下SpringAI

Hello大家好,今天写一些不烧脑的文章,我们来体验一下Spring的新框架Spring AI,只是简单玩玩不深入😏 Spring AI 简介 Spring AI是为了简化人工智能相关应用程序的开发Spring AI的诞生,灵感来自于LangChain等项目 Oll…

【Java EE】总结12种锁策略以及synchronized的实现原理

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

在线课程|基于SprinBoot+vue的在线课程管理系统(源码+数据库+文档)

在线课程目录 基于SprinBootvue的在线课程管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员模块的实现 2在线课程 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕…

【Android12】Bugreport实现原理

Bugreport实现原理 Bugreport Bugreport介绍 Android Bugreport是一个用于记录和收集 Android设备上系统信息、日志和调试信息的工具。 系统发生某些问题时,可以通过bugreport把系统当前时刻点(运行BugRepot的时刻)的系统相关的状态和信息…

守护人类健康:人工智能赋能医疗领域创新应用

常言道,“如果说人生是一场漫长的马拉松,那么健康将是决定跑道长度的关键因素。”健康是幸福生活和社会发展的基石。随着智能化时代的到来,人工智能技术在医疗健康领域的应用也日益广泛,成为了维护和促进人类健康的新工具。无论是…

精通MongoDB聚合操作API:深入探索高级技巧与实践

MongoDB 聚合操作API提供了强大的数据处理能力,能够对数据进行筛选、变换、分组、统计等复杂操作。本文介绍了MongoDB的基本用法和高级用法,高级用法涵盖了setWindowFields、merge、facet、expr、accumulator窗口函数、结果合并、多面聚合、查询表达式在…

IntelliJ IDEA - Lombok supports: OpenJDK javac, ECJ

问题描述 java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy26Lombok supports: OpenJDK javac, ECJ 解决方案 在 IDEA 设置中 File -> Settings 中找到配置如下&#xff1…

全志 T527 CAN 调试

一、设备树 二、内核 menuconfig 配置 SDK 根目录中执行./build.sh menuconfig 打开配置项界面;配置完成以后,./build.sh saveconfig保存配置项选择。 在buildroot中添加AWLINK工具:iproute2 、libsocketcan 、can‑utils 在根目录执行:./build.sh buildroot_menuconfig,…

DC-DC电源芯片规格书上的各种参数详解

1.输出电压精确度 输出电压的精确度,也被称为设定点精度,它描述了输出电压的允许误差。该参数通常是在常温,满载和额定输入电压的条件下测得的,它是这样定义的: 输出电压之所以产生误差,是因为元器件本身存在误差,特别是输出端的分压电阻,它将输出电压降低后比PWM比较…

python入门完结篇(6)

插入: 1.使用append的方法,使用append往列表末尾新增一个元素。此处的append的是搭配列表对象来使用的,而不是作为一个独立的函数. 而 type print input len自定义函数都是独立的函数,不用搭配任何对象. 而这种需要搭配对象(变量&#xff09…

Linux开发板配置静态IP

1、查看网口信息,易知eth0无IP地址 ifconfig2、首先分配一个IP地址 sudo ifconfig eth0 192.168.5.8 up3、此时配置的IP地址只是临时的,当你reboot重启板子上电后,ip地址会消失,因此需要为板子配置静态ip,避免每次上…