演示视频:https://www.bilibili.com/video/BV1tC411n7x8/
代码汇总
主函数
查询网上的添加指纹的代码,进入不了状态机,后按照江科大的状态机写法,修改的代码。目前只能添加一个指纹。
main.c
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "LED.h"
#include "OLED.h"
#include "Timer.h"
#include "Serial.h"
#include "as608.h"
#include "usart2.h"
#include "sys.h"
#include "Servo.h"
#include "Key.h"
SysPara AS608Para;//指纹模块AS608参数
u16 ValidN;//模块内有效指纹个数
void press_FR(void);//刷指纹
void Add_FR(void);
void Del_FR(void);
int main(void)
{
uint8_t KeyNum;
myLED_Init();
Servo_Init();
// Servo_SetAngle(180);
Servo_SetAngle(0);
OLED_Init();
PS_StaGPIO_Init();//初始化PA6读状态引脚
Serial_Init();
usart2_init();
Key_Init();
while(1)
{
//Servo_SetAngle(60);
// Del_FR();
LED_OFF();
OLED_ShowString(1,1,"NUM:");
KeyNum = Key_GetNum();
OLED_ShowNum(1,5,KeyNum,2);
Delay_ms(100);
// OLED_Clear();
if(KeyNum)
{
if(KeyNum==1)
{
Add_FR();
}
// else
// {
// OLED_ShowString(2,1,"hhh");
// Delay_ms(500);
// }
}
if(KeyNum==2)
{
Del_FR();
}
Del_FR();
if(PS_Sta)
{
press_FR();
}
}
}
//刷指纹
void press_FR(void)
{
SearchResult seach;
u8 ensure;
OLED_Clear();
OLED_ShowString(1,1,"Press Finger");
ensure=PS_GetImage();
if(ensure==0x00)//获取图像成功
{
ensure=PS_GenChar(CharBuffer1);
if(ensure==0x00) //生成特征成功
{
ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach);
if(ensure==0x00)//搜索成功
{
OLED_Clear();
OLED_ShowString(1,1,"Find Finger");
LED_ON();
Servo_SetAngle(60);
}
else
{
OLED_Clear();
OLED_ShowString(1,1,"Unknow Finger")