gpt4 book ai didi

python - 使用 pyserial 通过串行连接发送二进制数据

转载 作者:行者123 更新时间:2023-12-01 05:44:18 24 4
gpt4 key购买 nike

我想在序言中指出,我现在真的很迷失,所以我说的有些话可能没有意义,因为我不知道我在说什么。只要有帮助,请随意剖析我的问题。

好吧,所以我正在做的整个项目是用 python 编写一个程序来与定制的温度控制单元(使用 this 芯片构建)交互,并从存储数据点的内存缓冲区复制数据.

我不是编写它的人,我只是想摆脱我有限的 Arduino 经验(而且我还是 Python 新手)。以下是我收到的一些有关与其交互的命令的内容:

#define COMMAND_PING                'p'
// -> 'p'
// <- 'p' uuuu
// uuuu - unique number == 0x03645145

#define COMMAND_GET_RECORD_NUMBER 'i'
// -> 'i'
// <- 'i' nnnn
// nnnn - current record number (not written yet)

#define COMMAND_GET_DATA 'd' //Length to 32-bit boundary
// -> 'd' ssss llll
// <- 'd' ddddddd...
// ssss - starting address (should, but probably don't need to be at 32-byte boundary)
// llll - data length - this must be a multiplicity of 32
// ddddddd... - data returned

我可以使用 con.write('p') 就可以了,然后使用 con.readline() 我得到 \x00\x00pEQd\x03 转换为十六进制为 7045516403(注意发送和返回的值是小端)。

我的问题出在“d”命令上。我想我需要将 'd' 作为字符串与两个 32 位二进制值一起发送,但我不知道该怎么做。我什至不确定要问的问题是否正确,如果你们能提供任何帮助,我将不胜感激。

浏览互联网资源(几个小时)我想我可能想使用 struct 或者类似 this 的东西?我真的很喜欢一个例子来展示连接、写入和读取串行端口的整个过程。

最佳答案

类似的东西

port.write(struct.pack('<cii', 'd', address, length)
d = port.read(1) #'d' expected
data = port.read(length) #length bytes of data expected
if d != 'd' or len(data) < length:
raise Exception("Bad response received")

哪里<指定小端字节顺序,c是单个字符且 i是一个 32 位整数。

关于python - 使用 pyserial 通过串行连接发送二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633868/

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