python 串口通讯中处理十六进制高低位字节

本文介绍如何在Python中处理串口通信中接收到的十六进制数据,特别是高低位字节的处理。通过实例展示了两种方法,包括字符串处理(不推荐,因可能引发异常)和位操作符处理。同时提到了更复杂情况,如高低位位置转换和带符号位转换的处理,并提供了相关链接进一步探讨。
摘要由CSDN通过智能技术生成

之前用python处理的都是字符串、列表、字典、元组等数据类型的数据,由于比赛和项目需要,与下位机进行通信,并进行处理。本文以网络通信为例(串口通信同理)。下位机用C语言编写,接收到的是由99个十六进制数组成的数据包。
利用网络串口助手接收到的数据如下图所示:
在这里插入图片描述
然而python接收到的数据却是字符串形式:
在这里插入图片描述
部分通信协议如以下表格所示(全部协议太多,博主只取其中一部分进行举例):

序号 字节 内容 含义 备注
1 USART_TX_BUFF[0] 55 帧头
2 USART_TX_BUFF[1] AA 帧头
3 USART_TX_BUFF[2] 01 计数器 发送一次数据+1,累加到255后置零
··· ··· ··· ··· ···
5 USART_TX_BUFF[4] 电压高位 16进制数据 v=电压/100
6 USART_TX_BUFF[5] 电压低位

本案例中对电压进行处理:
方法一:对字符串处理

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
import time

tcp_socket = socket.socket
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值