1

[已解决] 以下更新中的解决方案

我试图寻找解决方案,但我现在不知道在哪里问。如果有人可以帮助我解决以下问题。

我正在将 Raspberry Pi Zero 连接到GT-511C3 指纹扫描仪,在得到响应后,我不断收到相同的错误代码。我不确定问题是在我的代码中还是在设备中,此时我不确定如何调试。

这是我所做的:

import wiringpi as wp
from struct import *

signal = pack('<BBHIH', 0x55, 0xAA, 0x01, 0x00, 0x03)
chk = sum(map(ord, list(signal)))
chk = map(chr, [chk % 256, chk / 256])
signal += chk[0] + chk[1]

wp.wiringPiSetup()
serial = wp.serialOpen('/dev/ttyAMA0', 9600)
wp.serialPuts(serial, signal)

res = []
while True:
    ack = wp.serialGetchar(serial)
    if ack == -0x01:
        break
    res.append(ack)
print res

我收到回复: ['0x55', '0xaa', '0x01', '0x00', '0x0f', '0x10', '0x00', '0x00', '0x31', '0x00', '0x50', '0x01']用户手册第 6 页描述了结构分解,但简而言之,它是带有注释的NACK响应。DEV_ERROR我不确定这里可能出了什么问题。

有任何想法吗?

更新 1:

我让电路板在 Arduino Uno 上工作,但 R-Pi 仍然存在与以前相同的问题 - 一直在接收NACK_DEV_ERR。我认为我们可以肯定地说问题出在 R-Pi 或我的代码中。会更新...

更新 2:

我认为问题在于path例程中小端和大端的组合 - 一些字节被交换(包括校验和)。我不知道为什么不正确的校验和/或命令代码返回NACK_DEV_ERR。将对其进行更多研究。

更新 3:

问题肯定是命令序列。显然,错误的校验和、错误的命令、错误的参数会返回NACK_DEV_ERR——不知道为什么没有具体的错误。此外,还注意到错误代码中的许多其他不一致之处。

如果有人感兴趣,工作代码在GitHub 上

4

0 回答 0