我想以此作为开头,指出我现在真的迷路了,所以我说的有些话可能没有意义,因为我不知道我在说什么。只要有帮助,请随时剖析我的问题。
好的,所以我正在做的整个项目是用 python 编写一个程序来与一个定制的温度控制单元(用这个芯片构建)接口,并从存储数据点的内存缓冲区复制数据。
我不是编写它的人,我只是放弃了我对 Arduinos 的有限经验(我也是 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()
I get back\x00\x00pEQd\x03
转换为十六进制是 7045516403 (注意发送和返回的值是小端序)。
我的问题是'd'命令。我想我需要将 'd' 作为一个字符串连同两个 32 位二进制值一起发送,但我不知道该怎么做。我什至不确定要问的正确问题,你们可以提供的任何帮助将不胜感激。
浏览互联网资源(几个小时)我想我可能想使用 struct 或者类似的东西?我真的很喜欢一个例子,展示连接、写入和读取到/从串行端口的整个过程。