001.
#include "stm32f10x.h"
002.
#include "stm32f10x_usart.h"
003.
#include "misc.h"
004.
unsigned
char
dat[18];
005.
006.
007.
unsigned
char
FP_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF};
008.
unsigned
char
FP_Get_Img[6] = {0x01,0x00,0x03,0x01,0x0,0x05};
009.
unsigned
char
FP_Templete_Num[6] ={0x01,0x00,0x03,0x1D,0x00,0x21 };
010.
unsigned
char
FP_Search[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x03,0xA1,0x0,0xB2};
011.
unsigned
char
FP_Search_0_9[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x0,0x13,0x0,0x21};
012.
unsigned
char
FP_Img_To_Buffer1[7]={0x01,0x0,0x04,0x02,0x01,0x0,0x08};
013.
unsigned
char
FP_Img_To_Buffer2[7]={0x01,0x0,0x04,0x02,0x02,0x0,0x09};
014.
unsigned
char
FP_Reg_Model[6]={0x01,0x0,0x03,0x05,0x0,0x09};
015.
unsigned
char
FP_Delet_All_Model[6]={0x01,0x0,0x03,0x0d,0x00,0x11};
016.
unsigned
char
FP_Save_Finger[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0B,0x00,0x19};
017.
unsigned
char
FP_Delete_Model[10]={0x01,0x00,0x07,0x0C,0x0,0x0,0x0,0x1,0x0,0x0};
018.
019.
020.
021.
void
USART1_SendByte(unsigned
char
temp)
022.
{
023.
USART_SendData(USART1, temp);
024.
while
(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
025.
}
026.
027.
028.
unsigned
char
USART1_ReceivByte()
029.
{
030.
unsigned
char
recev;
031.
while
(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
032.
recev = USART_ReceiveData(USART1);
033.
return
recev;
034.
}
035.
036.
037.
void
FINGERPRINT_Cmd_Get_Img(
void
)
038.
{
039.
unsigned
char
i;
040.
041.
for
(i=0;i<6;i++)
042.
USART1_SendByte(FP_Pack_Head[i]);
043.
044.
for
(i=0;i<6;i++)
045.
USART1_SendByte(FP_Get_Img[i]);
046.
047.
for
(i=0;i<12;i++)
048.
dat[i]=USART1_ReceivByte();
049.
}
050.
051.
052.
void
FINGERPRINT_Cmd_Delete_All_Model(
void
)
053.
{
054.
unsigned
char
i;
055.
056.
for
(i=0;i<6;i++)
057.
USART1_SendByte(FP_Pack_Head[i]);
058.
059.
for
(i=0;i<6;i++)
060.
USART1_SendByte(FP_Delet_All_Model[i]);
061.
062.
for
(i=0;i<12;i++)
063.
dat[i]=USART1_ReceivByte();
064.
}
065.
066.
067.
void
FINGERPRINT_Cmd_Img_To_Buffer1(
void
)
068.
{
069.
unsigned
char
i;
070.
for
(i=0;i<6;i++)
071.
{
072.
USART1_SendByte(FP_Pack_Head[i]);
073.
}
074.
for
(i=0;i<7;i++)
075.
{
076.
USART1_SendByte(FP_Img_To_Buffer1[i]);
077.
}
078.
for
(i=0;i<12;i++)
079.
{
080.
dat[i]=USART1_ReceivByte();
081.
}
082.
}
083.
084.
085.
void
FINGERPRINT_Cmd_Img_To_Buffer2(
void
)
086.
{
087.
unsigned
char
i;
088.
for
(i=0;i<6;i++)
089.
{
090.
USART1_SendByte(FP_Pack_Head[i]);
091.
}
092.
093.
for
(i=0;i<7;i++)
094.
{
095.
USART1_SendByte(FP_Img_To_Buffer2[i]);
096.
}
097.
for
(i=0;i<12;i++)
098.
{
099.
dat[i]=USART1_ReceivByte();
100.
}
101.
}
102.
103.
104.
void
FINGERPRINT_Cmd_Reg_Model(
void
)
105.
{
106.
unsigned
char
i;
107.
108.
for
(i=0;i<6;i++)
109.
{
110.
USART1_SendByte(FP_Pack_Head[i]);
111.
}
112.
113.
for
(i=0;i<6;i++)
114.
{
115.
USART1_SendByte(FP_Reg_Model[i]);
116.
}
117.
118.
for
(i=0;i<12;i++)
119.
{
120.
dat[i]=USART1_ReceivByte();
121.
}
122.
}
123.
124.
125.
void
FINGERPRINT_Cmd_Save_Finger( unsigned
char
ucH_Char, unsigned
char
ucL_Char)
126.
{
127.
unsigned
long
temp = 0;
128.
unsigned
char
i;
129.
130.
FP_Save_Finger[5] = ucH_Char;
131.
FP_Save_Finger[6] = ucL_Char;
132.
133.
134.
for
(i=0;i<7;i++)
135.
temp = temp + FP_Save_Finger[i];
136.
137.
FP_Save_Finger[7]=(temp & 0x00FF00) >> 8;
138.
FP_Save_Finger[8]= temp & 0x0000FF;
139.
140.
141.
for
(i=0;i<6;i++)
142.
USART1_SendByte(FP_Pack_Head[i]);
143.
144.
for
(i=0;i<9;i++)
145.
USART1_SendByte(FP_Save_Finger[i]);
146.
147.
for
(i=0;i<12;i++)
148.
dat[i]=USART1_ReceivByte();
149.
}
150.
151.
152.
void
FINGERPRINT_Cmd_Get_Templete_Num(
void
)
153.
{
154.
unsigned
int
i;
155.
156.
for
(i=0;i<6;i++)
157.
USART1_SendByte(FP_Pack_Head[i]);
158.
159.
160.
for
(i=0;i<6;i++)
161.
USART1_SendByte(FP_Templete_Num[i]);
162.
163.
for
(i=0;i<12;i++)
164.
dat[i]=USART1_ReceivByte();
165.
}
166.
167.
168.
void
FINGERPRINT_Cmd_Search_Finger(
void
)
169.
{
170.
unsigned
char
i;
171.
172.
for
(i=0;i<6;i++)
173.
{
174.
USART1_SendByte(FP_Pack_Head[i]);
175.
}
176.
177.
for
(i=0;i<11;i++)
178.
{
179.
USART1_SendByte(FP_Search[i]);
180.
}
181.
182.
for
(i=0;i<16;i++)
183.
{
184.
dat[i]=USART1_ReceivByte();
185.
}
186.
}
187.
188.
189.
void
FINGERPRINT_Cmd_Search_Finger_Admin(
void
)
190.
{
191.
unsigned
char
i;
192.
for
(i=0;i<6;i++)
193.
{
194.
USART1_SendByte(FP_Pack_Head[i]);
195.
}
196.
197.
for
(i=0;i<11;i++)
198.
{
199.
USART1_SendByte(FP_Search_0_9[i]);
200.
}
201.
202.
for
(i=0;i<12;i++)
203.
dat[i]=USART1_ReceivByte();
204.
}
205.
206.
207.
unsigned
char
FP_add_new_user(unsigned
char
ucH_user,unsigned
char
ucL_user)
208.
{
209.
do
210.
{
211.
FINGERPRINT_Cmd_Get_Img();
212.
}
while
( dat[9]!=0x0 );
213.
214.
FINGERPRINT_Cmd_Img_To_Buffer1();
215.
216.
do
217.
{
218.
FINGERPRINT_Cmd_Get_Img();
219.
}
while
( dat[9]!=0x0 );
220.
221.
FINGERPRINT_Cmd_Img_To_Buffer2();
222.
223.
FINGERPRINT_Cmd_Reg_Model();
224.
225.
FINGERPRINT_Cmd_Save_Finger(ucH_user,ucL_user);
226.
227.
return
0;
228.
}