ubuntu系统python实现串口通信

这篇具有很好参考价值的文章主要介绍了ubuntu系统python实现串口通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我使用的是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():终止当前写操作,并丢弃发送缓存中的数据。文章来源地址https://www.toymoban.com/news/detail-417527.html

到了这里,关于ubuntu系统python实现串口通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [Ubuntu 20.04 PC] 安装C-Kermit:一个开源串口通信软件

    在计算机科学领域,串口通信一直是非常重要的一环。而C-Kermit作为一款强大而灵活的开源串口通信软件,广泛应用于UNIX、Linux和Windows等操作系统中。本文将介绍C-Kermit的基本原理、特点以及如何使用它进行串口通信。 C-Kermit是由C语言实现的,旨在提供可靠、高效的串口通信

    2024年02月11日
    浏览(12)
  • 采用串口中断方式实现串口通信

    采用串口中断方式实现串口通信

    中断方式 中断方式是处理器和外部设备的数据传输方式。一方通过申请中断的方式与另一方进行数据传输,收发双方可以并行工作。 中断系统 中断装置和中断处理程序统称为中断系统。 中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数

    2024年02月16日
    浏览(13)
  • Proteus平台下基于Arduino的通过UART串口可靠通信系统仿真、传感器数据采集、以及LCD屏幕二级菜单功能实现(附工程源码、设计报告)

    Proteus平台下基于Arduino的通过UART串口可靠通信系统仿真、传感器数据采集、以及LCD屏幕二级菜单功能实现(附工程源码、设计报告)

    三个按键控制菜单,功能分别为:选择功能1,选择功能2,以及返回上一级; 通过三个外部中断对页面状态参量进行控制: 停止等待 当U1收到U2的ACK后才会发送下一次传感器采集到的数据 超时重传 当关闭U2后,U1到达设定的超时时间后,进行重传操作,直到收到U2的确认收到

    2024年02月16日
    浏览(13)
  • python--串口通信

    python--串口通信

    串口通信是嵌入式工程师的必备技能,如果能自己写一个简单的上位机的话,肯定会加分不少。 本系列是把相关的工作做个记录,毕竟Python不是经常用,老是忘记很多东西。用的时候总是重头再学一遍太麻烦了。毕竟3个月以后,自己写的程序也如同天书一般。 开发环境:

    2023年04月20日
    浏览(7)
  • Python应用开发——串口通信

    Python应用开发——串口通信

    在嵌入式开发中我们经常会用到串口,串口通信简单,使用起来方便,且适用场景多,因此串口常常用来输出调试Log或者跟其他外设进行通讯,也可以用作上位机和下位机之间的通讯。那这一讲我就简单介绍一下如何用Python编写一个串口收发程序。 Python的环境这里就不具体介

    2024年02月14日
    浏览(13)
  • Labview串口通信VISA实现串口收发

    Labview串口通信VISA实现串口收发

    前面使用过调用 MSComm 控件的方式(Labview串口通信MSComm实现串口收发),即利用 Windows 提供的控件对象,在 LabVIEW 中对该控件的属性和方法进行操作,来实现串口通信。之所以使用 MSComm 控件,是因为比使用 VISA 来实现串口通信要灵活一些,比如可以通过回调的方式,在 PC 的

    2024年02月15日
    浏览(9)
  • Labview串口通信MSComm实现串口收发

    Labview串口通信MSComm实现串口收发

    本文介绍使用 ActiveX 控件 MSComm 实现高性能的串口收发。 MSComm 作为一个串行通讯控件,每个 MSComm 控件,都对应一个串口,若需访问多个串口时必须使用多个 MSComm 控件。 MSComm 是 ActiveX 控件,可以在 PC 上控制串口数据的发送和接收,支持查询方式和中断方式(Windows 下称为事

    2024年02月15日
    浏览(10)
  • 串口通信实现-串口接收(vivado&verilog版)

    串口通信实现-串口接收(vivado&verilog版)

    串口系列知识分享: (1)串口通信实现-串口发送 (2)串口通信发送多字节数据 (3)串口通信实现-串口接收 (4)UART 通信-使用VIO进行板级验证 (5)串口接收-控制LED闪烁 (6)使用串口发送实现ACX720开发板时钟显示 (7)串口发送+RAM+VGA传图 此文介绍uart串口协议(串口接

    2024年02月12日
    浏览(32)
  • 串口通信实现-串口发送(vivado&verilog版)

    串口通信实现-串口发送(vivado&verilog版)

    串口系列知识分享: (1)串口通信实现-串口发送 (2)串口通信发送多字节数据 (3)串口通信实现-串口接收 (4)UART 通信-使用VIO进行板级验证 (5)串口接收-控制LED闪烁 (6)使用串口发送实现ACX720开发板时钟显示 (7)串口发送+RAM+VGA传图 此文介绍uart串口协议(串口发

    2024年02月14日
    浏览(10)
  • 【STM32】串口通信乱码(认识系统时钟来源)

    【STM32】串口通信乱码(认识系统时钟来源)

    使用 stm32f407 与电脑主机进行串口通信时,串口助手打印乱码,主要从以下方面进行排查: 检查传输协议设置是否一致(波特率、数据位、停止位、校验位) 检查MCU外部晶振频率是否和库函数设置的一致 最终发现是外部晶振频率和库函数不一致的问题。 我们要检查的是 AP

    2024年02月12日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包