我在我的项目中使用Adafruit Kookye指纹模块。由于它只能分配256个指纹,我需要制作一个程序来释放内存并添加额外的用户。我在图书馆做了以下功能:
uint8_t Adafruit_Fingerprint::downloadModel(uint16_t id, uint8_t packet_1[], uint8_t packet_2[], uint8_t slot) {
uint8_t packet[] = {FINGERPRINT_DOWNLOAD, slot};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
uint8_t len = getReply(recvPacket);
if ((len != 1) && (recvPacket[0] != FINGERPRINT_ACKPACKET))
return -1;
if (recvPacket[1] == 0x00) {
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet_1)+2, packet_1);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet_2)+2, packet_2);
return recvPacket[1];
} else {
return recvPacket[1];
}
}
此功能正常,它将指纹放入缓冲区1,当我调用该功能以保存ID时,它也可以工作。当我在传感器中打印指纹时,结构与从注册中直接添加的结构完全相同。但是,当我搜索指纹时,传感器始终返回用户不存在的信息。
我不知道这是什么问题。