ubuntu系统python实现串口通信

2023-05-16

我使用的是USB-TTL串口,下面是测试之前的一些准备工作。

ls /dev/  #查看设备,插拔串口设备注意有没有新增设备
dmesg|grep ttyUSB*
dmesg|grep ttyS*
sudo chmod 666 /dev/ttyUSB0 #更改串口读写权限
pip3 install pyserial #安装pyserial库

串口发数据python demo

import serial
import time
import _thread # 导入线程包

data_ser = serial.Serial("/dev/ttyUSB0",9600,timeout = 5)
data_ser.flushInput()

def get_data():
    while True:
        data_count = data_ser.inWaiting()
        if data_count !=0 :
            recv = data_ser.read(data_ser.in_waiting).decode("gbk")
            print(time.time()," --- data_recv --> ", recv)
        time.sleep(0.1)

if __name__ == '__main__':

    _thread.start_new_thread(get_data,()) # 开启线程,执行get_data方法
    while 1:
        time.sleep(2)
        data_ser.write(b'1') # 发送二进制1
        time.sleep(2)
        data_ser.write(b'0') # 发送二进制0

串口接受数据并返回python demo

import serial # 导入串口包
import time # 导入时间包

ser = serial.Serial("/dev/ttyUSB0",9600,timeout = 5) # 开启com3口,波特率115200,超时5

ser.flushInput() # 清空缓冲区

def main():
    while True:
        count = ser.inWaiting() # 获取串口缓冲区数据
        if count !=0 :
            recv = ser.read(ser.in_waiting).decode("gbk") # 读出串口数据,数据采用gbk编码
            ser.write(b'get')
            print(time.time()," --- recv --> ", recv) # 打印一下子
        time.sleep(0.1) # 延时0.1秒,免得CPU出问题

if __name__ == '__main__':
    main()

常用方法:
ser.isOpen():查看端口是否被打开。
ser.open() :打开端口‘。
ser.close():关闭端口。
ser.read():从端口读字节数据。默认1个字节。
ser.read_all():从端口接收全部数据。
ser.write(“hello”):向端口写数据。
ser.readline():读一行数据。
ser.readlines():读多行数据。
in_waiting():返回接收缓存中的字节数。
flush():等待所有数据写出。
flushInput():丢弃接收缓存中的所有数据。
flushOutput():终止当前写操作,并丢弃发送缓存中的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu系统python实现串口通信 的相关文章

  • RTK差分编码

    一 概念 DCB xff08 Differential Code Bias 差分码偏差 xff09 是全球卫星导航系统 xff08 GNSS xff09 中 xff0c 通过不同信号得到的观测值之间存在的系统性偏差 DCB是由卫星和接收机硬
  • 详解JAVA的事件监听机制和观察者设计模式

    一 事件监听机制的三要素 事件源 事件监听器 xff0c 事件对象 监听器一般是JAVA接口 xff0c 用来约定可以执行的操作 二 事件监听机制简要说明 事件源注册一个或者多个事件监听器 xff0c 事件源对象状态发生变化或者被操作时 x
  • Nginx控制IP(段)的访问策略配置

    Nginx engine x 是一个高性能的HTTP和反向代理web服务器 xff0c 同时也提供了IMAP POP3 SMTP服务 有着负载均衡 动静分离等强大的功能 xff0c 而且还有众多三方插件来满足应用要求 这里重点介绍nginx
  • 敏捷开发-互联网时代的软件开发方式

    一 什么是敏捷开发 敏捷开发简单的描述为 xff1a 是一种应对需求快速变化的软件开发方式 敏捷开发的核心思想就是小步快跑 不断迭代 xff0c 在一次次的迭代升级中完成 小目标 最终完成那个 大目标 正因为敏捷开发的这种不断迭代升级的开发
  • Window系统查看端口是否启用以及占用程序

    1 打开DOS命令行窗口 开始 gt 运行 gt cmd xff0c 或者是 window 43 R gt cmd xff0c 调出命令窗口 2 查看当前正在使用的所有端口 命令 xff1a netstat ao 包括协议 xff0c 端口
  • ThreadLocal的深度解读

    一 J2SE的原始描述 This class provides thread local variables These variables differ from their normal counterparts in that eac
  • 消息中间件如何保证消息不丢失

    一 消息队列MQ的三个阶段 1 生产者发送消息到MQ 2 MQ存储消息到内存或者硬盘 3 消费者消费消息 由于网络的原因 服务器的原因 程序的原因等等 xff0c 在每个阶段都有可能引起消息的丢失 xff1a 1 生产者发送消息到MQ xf
  • 32位系统为什么最大只支持4GB运存?

    首先要明白 1B 61 2 3b 1KB 61 2 10B 1MB 61 2 20B 1GB 61 2 30B 4GB 61 2 2 2 30B 61 2 32B b表示一个比特位 xff0c B表示一个字节 xff0c 一字节等于8个比特
  • 数据库和Spring事务隔离级别

    事务隔离级别 xff0c 指的是数据库多个并发事务操作共享数据时 xff0c 共享的数据对多个并发事务之间的可见性和影响程度 隔离的内容主要指数据方面 具体举例来说就是一个事务A读操作时 xff0c 其他并发事务修改操作事务A读的数据时 x
  • Java中各种锁的详细介绍(二):悲观锁和乐观锁

    Java中锁的类型多种多样 xff0c 有简单有复杂 xff0c 适合各种不同的应用场景 xff0c 接下来会分几章给大家详细介绍java中各种类型的锁 一 悲观锁和乐观锁的说明 1 悲观锁 Pessimistic Lock xff1a 对
  • Java中各种锁的详细介绍(三):自旋锁 VS 适应性自旋锁

    一 自旋锁 在介绍自旋锁前 xff0c 需要介绍一些前提知识来帮助大家更好的明白自旋锁的概念 阻塞或唤醒一个Java线程需要操作系统切换CPU状态来完成 xff0c 这种状态转换需要耗费处理器时间 如果同步代码块中的内容过于简单 xff0c
  • Java中各种锁的详细介绍(四):无锁|偏向锁|轻量级锁|重量级锁

    无锁 偏向锁 轻量级锁和重量级锁 xff0c 都是指锁的状态 xff0c 专门针对synchronized的 一 Synchronized如何实现线程同步 xff1f Java对象中有两个重要概念 xff1a Java对象头 和 Monit
  • A-star 算法原理分析

    搜索算法 图论中 xff0c 应用最广泛的就是搜索算法了 xff0c 比如 xff0c 深度优先搜索 广度优先搜索等 在介绍 Dijkstra 算法那篇中 xff0c 除了深度优先 广度优先这种暴力搜索算法 xff0c 还有一些最短路算法也
  • ROS物理仿真环境学习 gazebo + rviz【问题记录】

    Turtlebot3与仿真 仿真环境搭建 span class token comment 一个命令安装所有TurtleBot3依赖项 span span class token function sudo span span class
  • 机器人技术-HC-SR04超声波传感器数据及机器人避障的应用

    比较详细的HC SR04超声波传感器数据及机器人避障的应用方法 言 超声波传感器概述 超声波传感器型号繁多 价格从几元钱到几百元不等 主要用于检测距离 同时根据声速计算出物体的距离 但超声波传感器有四个缺点 1 声音速度易受温度和风向等环境
  • 自旋锁基本原理

    自旋锁基本原理 轻量级锁在加锁过程中 xff0c 用到了自旋锁 所谓自旋 xff0c 就是指当有另外一个线程来竞争锁时 xff0c 这个线 程会在原地循环等待 xff0c 而不是把该线程给阻塞 xff0c 直到那个 获得锁的线程释放锁之后
  • python获取视频帧率,总帧数,python ffmpeg获取视频信息ffmpeg.prob,python opencv获取视频信息cap.get(cv2.CAP_PROP_FRAME_WIDTH)

    文章目录 1 xff0c 效果2 xff0c ffmpeg获取视频信息2 xff0c opencv获取视频信息 1 xff0c 效果 2 xff0c ffmpeg获取视频信息 其中key xff1a streams 对应的值是一个list
  • 抓包教程(安卓抓包)Fiddler,HttpCancy使用~浅谈前几日抓包中遇到的坑

    安卓抓包 xff1a 0 直接设置手机wifi代理 xff0c 电脑fiddler抓包 xff08 可能有些抓不到 xff09 1 使用justtrustme这个xposed模块 43 virtual xposed 43 fiddler 可
  • multiple definition of `main'

    文章目录 1 目录结构2 报错内容3 cmake4 错误原因5 修改方案一5 修改方案二 1 目录结构 2 报错内容 3 cmake cmake minimum required span class token punctuation s
  • perf工具报错,升级ubuntu子系统linux内核

    文章目录 1 xff0c 运行perf工具报错1 1 xff0c 可能的原因有 xff1a 2 xff0c 我选择升级linux内核 xff0c 和当前perf工具版本保持一致2 1 xff0c 下载6 2 12内核源码2 2 xff0c

随机推荐