#这是个基于STC89c52的AS608指纹锁项目
添加指纹模块老是不行,id写完后,只在Lcd1602上显示Enter fp Please,AS608模块没反应呀!怎么都没反应
void FPM10A_Add_Finger()
{
unsigned char key;
unsigned char show_id[3]={0,0,0};
ClrScreen();
while(1)//扫描
{
dis_str(0,0,"Input ID Please");
key=number();
if(key=='D')//返回键
break;
if(key=='A')//id加1
{
if(finger_id==999)
finger_id=0;
else
finger_id++;
}
if(key=='B')//id减1
{
if(finger_id==0)
finger_id=999;
else
finger_id--;
}
show_id[0]=finger_id/100;
show_id[1]=finger_id%100/10;
show_id[2]=finger_id%10;
dis_str(0,1,"ID:");
Write_command(0x80|(0x40+4));
Write_dat(show_id[0]+'0');
Write_command(0x80|(0x40+5));
Write_dat(show_id[1]+'0');
Write_command(0x80|(0x40+6));
Write_dat(show_id[2]+'0');
if(key=='C')
{
ClrScreen();
dis_str(0,0,"Enter fp Please");
do
{
FPM10A_Get_Image();
FPM10A_Receive_Data(12);
if(FPM10A_RECEICE_BUFFER[9]==0)//判断接收码,第9位为接收位
{
Delay_Ms(100);
FPM10A_Gen_Char_To_Buffer1();
FPM10A_Receive_Data(12);
if(FPM10A_RECEICE_BUFFER[9]==0)
dis_str(0,1,"successful");
buzz_times(1);
Delay_Ms(1000);
dis_str(0,1,"Please confirm");
do
{
FPM10A_Get_Image();
FPM10A_Receive_Data(12);
if(FPM10A_RECEICE_BUFFER[9]==0)//判断接收码,第9位为接收位
{
Delay_Ms(100);
FPM10A_Gen_Char_To_Buffer2();
FPM10A_Receive_Data(12);
FPM10A_Reg_Model();
FPM10A_Receive_Data(12);
FPM10A_Cmd_Save_Finger(finger_id++);
FPM10A_Receive_Data(12);
if(FPM10A_RECEICE_BUFFER[9]==0)
dis_str(0,1,"successful");
buzz_times(1);
Delay_Ms(2000);
break;
}
}while(key != 'D');
break;
}
}while(key != 'D');
Delay_Ms(1000);
ClrScreen();//清屏
}
}
}
就一直这个样,录不了指纹。
已经阻碍我2天了。-_-
根据你提供的代码,可能有以下几个原因导致指纹录入失败:
FPM10A 模块无法正常连接:首先应该检查 FPM10A 模块的接线是否正确,包括指纹模块的 VCC、GND 和 TXD、RXD 等引脚连接是否正确。另外,确认 FPM10A 模块是否正常工作,可以尝试在代码中添加一些调试语句,查看模块是否能够正常接收到数据。
指纹采集失败:在录入指纹时,需要保证指纹图像的质量,否则可能会导致指纹信息不完整或无法识别。可以尝试将 FPM10A 模块移动到不同的位置,尽可能使得指纹图像清晰明确。另外,在采集指纹图像前,可以先将手指自然地放置在指纹识别模块上,并保持稳定,以便更好地捕获指纹信息。
编程错误:在程序中可能存在一些代码逻辑错误,例如函数调用的顺序不正确或者参数传递错误等。可以通过打印调试信息的方式,逐步定位程序中的错误并进行修复。
针对以上问题,你可以尝试以下几个解决方法:
检查 FPM10A 模块的接线是否正确,确认模块能否正常连接。
尝试调整指纹采集位置,使得指纹图像更加清晰明确。
添加调试语句,查看程序中是否存在逻辑错误,并进行相应的修复。
希望这些方法能够帮助你解决问题。
网上找了开源的,烧了一下,成了,硬件肯定没问题。我测了一下, 这句 if(FPM10A_RECEICE_BUFFER[9]==0)它判断不出来,查了手册,应答位就是第十位啊,问题到底在哪呀! -_-