gpt4 book ai didi

python:从 serial.read() 解析字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:06 25 4
gpt4 key购买 nike

我正在 PC 上的 python 脚本和嵌入式 c 之间进行通信。我有以下问题:

我从 mcu(嵌入式 c)发送整数和 float 的二进制表示。使用 Br@y 的终端,我已经验证了数字的二进制表示是从 mcu 发送的。在 python 脚本中,我使用 pySerial 的 serial.read 获取字节,将它们放入列表中。

如果我从 MCU 发送以下数字:0x10000000(16 基 10,小尾数法),它在 Python 脚本中显示为“\x10\x00\x00\x00”,这并不可怕,因为我可以从一致的索引中提取字符。但是,当两个十六进制数字表示一个 ascii 字符时,该字符串将具有 ascii 字符而不是\xDD。

有没有办法强制字符串只使用\xDD 表示,而不是 ascii 值?还是我必须遍历字符串,删除 '\x' 并在我进行时转换 ascii 值?

谢谢

最佳答案

您确定 \x 在字符串中吗?这看起来像 Python 的二进制数据表示字符串 (repr),但字符 \x 实际上并不在字符串中。

struct模块可以解压二进制数据。

s = '\x10\x00\x00\x00'
i = struct.unpack("I", s)[0]

i 现在是 16 (int)。

关于python:从 serial.read() 解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com