下面这段代码的ID显示不出来
typedef struct
{
uint pageID;//指纹ID
uint mathscore;//匹配得分
}SearchResult;
//高速搜索PS_HighSpeedSearch
//功能:以 CharBuffer1或CharBuffer2中的特征文件高速搜索整个或部分指纹库。
// 若搜索到,则返回页码,该指令对于的确存在于指纹库中 ,且登录时质量
// 很好的指纹,会很快给出搜索结果。
//参数: BufferID, StartPage(起始页),PageNum(页数)
//说明: 模块返回确认字+页码(相配指纹模板)
uchar PS_HighSpeedSearch(uchar BufferID,uint StartPage,uint PageNum,SearchResult *p)
{
uint temp;
uint ensure;
uchar *rdata;
SendHead();
SendAddr();
SendFlag(0x01);//命令包标识
SendLength(0x08);
Sendcmd(0x1b);
UART2_SendData(BufferID);
UART2_SendData(StartPage>>8);
UART2_SendData(StartPage);
UART2_SendData(PageNum>>8);
UART2_SendData(PageNum);
temp = 0x01+0x08+0x1b+BufferID
+(StartPage>>8)+(uchar)StartPage
+(PageNum>>8)+(uchar)PageNum;
SendCheck(temp);
rdata=JudgeStr(2000);
if(rdata)
{
ensure=rdata[9];
p->pageID = (uint)(rdata[10]<<8) +rdata[11];
p->mathscore= (uint)(rdata[12]<<8) +rdata[13];
}
else
ensure=0xff;
return ensure;
}
SysPara AS608Para;//指纹模块AS608参数
//刷指纹
void press_FR(void)
{
SearchResult seach;
uchar ensure;
// char str[20];
while(key_num!=1)
{
key_num=KEY_Scan(0);
ensure=PS_GetImage();
if(ensure==0x00)//获取图像成功
{
ensure=PS_GenChar(CharBuffer1);
if(ensure==0x00) //生成特征成功
{
ensure=PS_HighSpeedSearch(CharBuffer1,0,99,&seach);
if(ensure==0x00)//搜索成功
{
OLED_ShowString(0,2," ",16);
OLED_ShowCHinese(16,2,0);//指纹验证成功
OLED_ShowCHinese(32,2,1);
OLED_ShowCHinese(48,2,13);
OLED_ShowCHinese(64,2,14);
OLED_ShowCHinese(80,2,26);
OLED_ShowCHinese(96,2,27);
OLED_ShowString(112,2," ",16);
OLED_ShowString(0,4,"Your ID is",16);
OLED_ShowString(88,4,(u8*)seach.pageID+0x30,16); 这里的ID这样写在OLED12864上面没有任何显示,是哪里错了吗?
Delay_Ms(3000);
}
}
else
{};
}
}
OLED_Clear();
Start_Menu();
}
|