f
#include?<ID1016C.h>
#include?<Wire.h>
#include?<Adafruit_GFX.h>
#include?<Adafruit_SSD1306.h>
#define?OLED_RESET?4
Adafruit_SSD1306?display(OLED_RESET);
ID1016C?C1016;
uint8_t?serial_buffer[20]?=?{0};
uint32_t?Finge_num?=?0;??//讀取的結(jié)果
uint32_t?Input_Finge_num?=?1;??//指定要錄入的ID
int?key1?=?49;??//設置按鍵IO
int?key2?=?48;??//設置按鍵IO
void?setup()?{
??C1016.ID1016C_Init();
??delay(500);
??display.begin(SSD1306_SWITCHCAPVCC,?0x3C);
??Serial.begin(115200);
??pinMode(key1,?INPUT);
??pinMode(key2,?INPUT);
??display.clearDisplay();??//?清屏
??display.setTextSize(1);??//設置字體大小
??display.setTextColor(WHITE);
??display.setCursor(0,?0);
??display.setCursor(30,?0);
??display.println("FingerTEST");
??display.display();
}
void?loop()?{
??C1016.ID1016C_Weakup();
??switch?(key_scan())
??{
????case?1:
??????C1016.C1016_Enroll(Input_Finge_num);??//?錄入指紋
??????display.clearDisplay();???
??????display.setCursor(0,?10);
??????display.println("FingerOK");
??????display.print("Finge_num:");
??????display.print(Input_Finge_num);
??????display.display();
??????break;
????case?2:
??????Finge_num?=?C1016.C1016_Identify();??//?識別指紋
??????display.clearDisplay();??????????????????
??????if?(Finge_num?==?0)
??????{
????????display.setCursor(0,?20);
????????display.print("No?Finge");
??????}?else
??????{
????????display.setCursor(0,?20);
????????display.print("Finge_num:");
????????display.print(Finge_num);
??????}
??????display.display();
??????break;
????case?3:??????????????????????//指紋?ID++?方便錄入下一個指紋
??????display.setCursor(0,?10);
??????display.clearDisplay();????????????????
??????Input_Finge_num++;
??????display.print("Input_Finge_num:");??//顯示將要錄入指紋的ID
??????display.print(Input_Finge_num);
??????display.display();
??????break;
????case?4:??????????????????????//?清除所有指紋信息
??????C1016.C1016_cmd_Delete();??//?清除所有指紋信息
??????display.clearDisplay();????
??????display.setCursor(0,?40);
??????display.print("Clean?Finge");
??????display.display();
??????break;
????default:
??????break;
??}
??display.setCursor(30,?0);
??display.println("Finger?TEST");
??display.display();
}
uint8_t?key_scan()
{
??uint8_t?i?=?0;
??if?(digitalRead(key1)?==?0)
??{
????delay(20);
????if?(digitalRead(key1)?==?0)
????{
??????while?(digitalRead(key1)?==?0)
??????{
????????delay(1);
????????i++;
????????if?(i?>?200)
????????{
??????????while?(digitalRead(key1)?==?0);
??????????return?3;
????????}
??????}
??????return?1;
????}
??}?else?if?(digitalRead(key2)?==?0)
??{
????delay(20);
????if?(digitalRead(key2)?==?0)
????{
??????while?(digitalRead(key2)?==?0)
??????{
????????delay(1);
????????i++;
????????if?(i?>?200)
????????{
??????????while?(digitalRead(key2)?==?0);
??????????return?4;
????????}
??????}
??????return?2;
????}
??}
??return?0;
}