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

相关推荐
思则变1 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
漫谈网络1 小时前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
try2find3 小时前
安装llama-cpp-python踩坑记
开发语言·python·llama
博观而约取4 小时前
Django ORM 1. 创建模型(Model)
数据库·python·django
精灵vector5 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习5 小时前
Python入门Day2
开发语言·python
Vertira5 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉5 小时前
Python之 sorted() 函数的基本语法
python
项目題供诗6 小时前
黑马python(二十四)
开发语言·python
晓13136 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr