栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

ubuntu系统python实现串口通信

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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():终止当前写操作,并丢弃发送缓存中的数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038506.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号