Python操作串口通信

Python操作串口通信

注意Linux下先要修改串口的权限:

sudo chmod 777 /dev/ttyUSB0

以下是python代码:

python 复制代码
# coding=utf-8
# 包:pyserial,pymysql
# 权限:sudo chmod 777 /dev/ttyUSB0
import serial
# import pymysql
import threading
import time

# x=serial.Serial('COM3',9600)  # winsows系统使用com3口连接串行口
# x=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5)  # 使用USB连接串行口
x=serial.Serial("/dev/ttyS4",9600,timeout=0.5)  # Linux系统使用com4口连接串行口


def fasong():#发送函数
    while True:
        time.sleep(3)
        myinput= bytes([0x01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A])
        #这是我要发送的命令,原本命令是:01 03 00 00 00 01 84 0A
        x.write(myinput)


def jieshou():#接收函数
    while True:
       while x.inWaiting()>0:
           myout=x.read(7)#读取串口传过来的字节流,这里我根据文档只接收7个字节的数据
           datas =''.join(map(lambda x:('/x' if len(hex(x))>=4 else '/x0')+hex(x)[2:],myout))#将数据转成十六进制的形式
           new_datas = datas.split("/x")#将字符串分割,拼接下标4和5部分的数据
           need = new_datas[4]+new_datas[5];#need是拼接出来的数据,比如:001a
           my_need = int(hex(int(need,16)),16)#将十六进制转化为十进制
           sql = "INSERT INTO VOC_DATA(value,create_time)VALUES('"+str(my_need)+"',"+str(int(time.time()))+")"
           print(sql)
           # 使用 execute()  方法执行 SQL 查询
           # 执行sql语句
           # cursor.execute(sql)
            # 提交到数据库执行
           # db.commit()


if __name__== '__main__':
    # 打开数据库连接
     # db = pymysql.connect("localhost","root","123456789","voc" )
    # 使用 cursor() 方法创建一个游标对象 cursor
     # cursor = db.cursor()
     t1 = threading.Thread(target=jieshou,name="jieshou")#线程1:不断的去请求数据
     t2= threading.Thread(target=fasong, name="fasong")#线程2:不断地去接收数据
     t2.start()#开启线程1
     t1.start()#开启线程2


#import serial
#ser = serial.Serial('/dev/ttyS3')  # 'COM3'
#ser.setBaudrate(9600)
#ser.setByteSize(8)
#ser.setStopbits(1)
#print(ser.portstr)
#data = ser.readline(0,'\r\n')
#data = ser.read(20)
#print(data)

参考博客:

https://www.cnblogs.com/zhengweizhao/p/8426826.html

https://blog.csdn.net/xuzhexing/article/details/91043579

相关推荐
NPE~14 分钟前
[爬虫]获取某鱼网页版商品数据
爬虫·python·教程·逆向
天若有情67315 分钟前
【实战】从零开发企业级 B 端风格字符串值管理系统(Python+MySQL)
开发语言·python·mysql·企业级应用·b端应用
郝学胜-神的一滴15 分钟前
深度学习入门全解析:从核心概念到实战基础 | 技术研讨会精华总结
人工智能·python·深度学习·算法·cnn
一方热衷.21 分钟前
YOLO26-OBB ONNXruntime部署 python/C++
开发语言·c++·python
薛不痒32 分钟前
大模型(2):大模型推理文本分类
人工智能·python·深度学习·机器学习
yuyuxun133 分钟前
基于JSP购物网站系统的设计与实现 毕业设计-附源码03645
java·开发语言·python·django·flask·课程设计·pygame
常利兵1 小时前
一文搞懂双Token、SSO与第三方权限打通,附实战代码
python·gitee·kotlin
BatyTao1 小时前
Python从零起步-数据容器
开发语言·python
所谓伊人,在水一方3332 小时前
【Python数据科学实战之路】第5章 | 数据可视化基础:用Matplotlib讲好数据故事
python·信息可视化·matplotlib
NGC_66112 小时前
Java基础面试题2
java·开发语言·python