python 串口通信---留作记录

本文介绍了一种使用Python进行串口通信的方法,并详细展示了如何将整数转换为字节流进行发送。通过实例代码,讲解了数据打包过程,包括高位和低位的拆分与组合,以及校验位的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import serial

ser = serial.Serial('/dev/ttyS0',38400)
s =  [0x55,0xaa,0xdc,0x13,0x22,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0xaa,0xaa,0xaa,0x00]
d1 = 43690
d2 = 43690
h1 = d1&(0xff00)
h1=h1>>8
h2 = d1&(0x00ff)
h3 = d2&(0xff00)
h3=h3>>8
h4 = d2&(0x00ff)
s[17]=h1
s[18]=h2
s[19]=h3
s[20]=h4
n = len(s)

print(n)
temp=s[3]
for i in range(4,22):
    print(i)
    temp = temp^s[i]
print(hex(temp))
s[n-1]=temp

ser.write(s)


import sys import serial import json import time from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class Ui_Form(object): def setupUi(self, Form): if not Form.objectName(): Form.setObjectName(u"Form") Form.resize(401, 293) self.textBrowser = QTextBrowser(Form) self.textBrowser.setObjectName(u"textBrowser") self.textBrowser.setGeometry(QRect(100, 120, 141, 31)) self.textBrowser.setStyleSheet(u"background-color: rgb(255, 170, 255);") self.label = QLabel(Form) self.label.setObjectName(u"label") self.label.setGeometry(QRect(20, 120, 71, 20)) self.lineEdit = QLineEdit(Form) self.lineEdit.setObjectName(u"lineEdit") self.lineEdit.setGeometry(QRect(100, 30, 131, 31)) self.label_2 = QLabel(Form) self.label_2.setObjectName(u"label_2") self.label_2.setGeometry(QRect(20, 30, 81, 20)) self.label_3 = QLabel(Form) self.label_3.setObjectName(u"label_3") self.label_3.setGeometry(QRect(20, 190, 71, 20)) self.textBrowser_2 = QTextBrowser(Form) self.textBrowser_2.setObjectName(u"textBrowser_2") self.textBrowser_2.setGeometry(QRect(100, 180, 141, 31)) self.textBrowser_2.setStyleSheet(u"background-color: rgb(255, 170, 127);") self.retranslateUi(Form) QMetaObject.connectSlotsByName(Form) # setupUi def retranslateUi(self, Form): Form.setWindowTitle(QCoreApplication.translate("Form", u"\u4e32\u53e3\u63a5\u6536", None)) self.label.setText(QCoreApplication.translate("Form", u"\u63a5\u6536\u6570\u636e1\uff1a", None)) self.label_2.setText(QCoreApplication.translate("Form", u"\u4e32\u53e3\u53f7\u8bbe\u7f6e\uff1a", None)) self.label_3.setText(QCoreApplication.translate("Form", u"\u63a5\u6536\u6570\u636e2\uff1a", None)) # retranslateUi a = str(ui.lineEdit.text()) print(a) ser = serial.Serial('{}', 9600) def date1(): date = ser.read_all().decode('utf-8') if date == '': ui.textBrowser.setText('{}'.format('暂无数据')) else: ui.textBrowser.setText('{}'.format(date)) if __name__ == "__main__": app = QApplication(sys.argv) Form = QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_())
最新发布
07-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值