python使用串口通信

python发送16进制数据进行串口通信

import binascii,time
# 配置串口基本参数并建立通信
ser = serial.Serial("COM1", 9600, 8, "E", timeout=50,stopbits=1)
# 数据帧
a='68 AA AA AA AA AA AA 68 11 04 34 37 33 37 B6 16'
# 简单的发送16进制字符
# ser.write(b'\xFE\xFE\xFE')
# 但是上面的方法不够优雅,需要自己添加\x,非常麻烦,于是使用下面这个方法
d=bytes.fromhex(a)
# 串口发送数据
result=ser.write(d)
# 停止、等待数据,这一步非常关键。timeout压根没用
time.sleep(1)
count=ser.inWaiting()
# 数据的接收
if count>0:
data=ser.read(count)
if data!=b'':
# 将接受的16进制数据格式如b'h\x12\x90xV5\x12h\x91\n4737E\xc3\xab\x89hE\xe0\x16'
# 转换成b'6812907856351268910a3437333745c3ab896845e016'
# 通过[]去除前后的b'',得到我们真正想要的数据
print("receive",str(binascii.b2a_hex(data))[2:-1])
# 关闭串口
ser.close()

__EOF__

本文作者Harry
本文链接https://www.cnblogs.com/harry66/p/16333538.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Harry_666  阅读(846)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示