目錄
一、硬體使用分類
1.整體圖展示
2.STM32F103RCT6單片機
3.AS608指紋模塊
4.USB轉TTL
二、軟體設計
1.接線設計
2.程式設計
一、硬體使用分類
1.整體圖展示
采用STM32F103RCT6作為主控制器

2.STM32F103RCT6單片機
STM32F103RCT6不含USB轉TTL芯片,需要外界接入
下圖為STM32F103RCT6原理圖
其中在RCT6中PA9,PA10為板子的USART1,原理圖中并沒有出現以上倆引腳,其引腳在為板子上標識的TX,RX

以下是工程中USART1的初始化程式設計
void uart_init(u32 bound)
{
//GPIO埠設定
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA時鐘
//USART1_TX GPIOA.9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
//USART1_RX GPIOA.10初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10
//Usart1 NVIC 配置
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優先級3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子優先級3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根據指定的引數初始化VIC暫存器
//USART 初始化設定
USART_InitStructure.USART_BaudRate = bound;//串口波特率
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位資料格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬體資料流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收發模式
USART_Init(USART1, &USART_InitStructure); //初始化串口1
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟串口接受中斷
USART_Cmd(USART1, ENABLE); //使能串口1
}
在上面的程式段中,我們可以清晰的看出來PA9,PA10都可以使用,PA9為TX,PA10為RX,
3.AS608指紋模塊
AS608指紋識別模塊是ALIENTEK推出的一款高性能的光學指紋識別模塊,AS608模塊采用了國內著名指紋識別芯片公司杭州晟元芯片技術有限公司(Synochip)的 AS608指紋識別芯片,芯片內置DSP運算單元,集成了指紋識別演算法,能高效快速采集影像并識別指紋特征,模塊配備了串口、USB通訊介面,用戶無需研究復雜的影像處理及指紋識別演算法,只需通過簡單的串口、USB 按照通訊協議便可控制模塊,本模塊可應用于各種考勤機、保險箱柜、指紋門禁系統、指紋鎖等場合,
下面是AS608的一些具體引數:
| 供電電壓 | 3.3V(切勿使用5V,容易啥訓芯片) |
| 供電電流 | < 60mA |
| 指紋影像錄入時間 | < 1s |
| 搜索時間 | < 1.0s(1:500時,均值) |
| 可錄入指紋數量 | 300 |
| 通訊介面 | USB/USART |
| 匹配方式 | 比對方式(1:1),搜索方式(1:N) |
注意!!!! AS608指紋模塊切勿接5V,一定要接3.3V
注意!!!! AS608指紋模塊切勿接5V,一定要接3.3V
注意!!!! AS608指紋模塊切勿接5V,一定要接3.3V
如果不相信的話可以去試試(如果你是土豪的話,完全跳過這一條)
下面倆個圖就是我們AS608指紋模塊的引腳解釋:

D+和D-不用接,就算你想接也不一定能接上,反正根本就沒有那倆跟線的引腳,
其中5線(藍線)這個引腳就是作為我們輸出的引腳,話說每個模塊到頭來都是個開關而已,就是開關的啟動方式不同罷了,

4.USB轉TTL
這個就不做過多介紹了,都是大家常用的東西,
二、軟體設計
1.接線設計
AS608指紋模塊與單片機接線
| VCC | GND | TX | RX | TCH | UA |
| 3.3V | GND | PA3 | PA4 | PA6 | 3.3V |
USB轉TTL與單片機接線
| VCC | GND | TX | RX |
| 5V | GND | RX(PA10) | TX(PA9) |
在RCT6中標識的是TX與RX,其實他們就是單片機上的PA10,PA9上面已經解釋過了,這里就不做過多的解釋了,
2.程式設計
程式是按照正點原子中的歷程進行修改的,此處使用的是串口進行操作的
對于AS608指紋模塊我們首先要進行握手,換句話也就是通過發送特定的16進制資料將單片機與模塊進行連接而已了,
printf("AS608指紋模塊串口操作\r\n");
printf("作者:十里承歡-\r\n");
printf("嘗試連接AS608中.....\r\n");
while(PS_HandShake(&AS608Addr))//與AS608模塊握手
{
printf("未連接上AS608!\r\n");
delay_ms(1000);
printf("再次嘗試連接中....\r\n");
delay_ms(1000);
}
//連接模塊成功,初始化
printf("連接成功!!\r\n");
str=mymalloc(30);
sprintf(str,"波特率:%d 地址:%x",usart2_baund,AS608Addr);//顯示波特率
printf("%s",str);
delay_ms(100);
在握手程序中
1.發送包頭:也就是0XEF、0X01
2.發送地址:AS608的默認地址是0XFFFFFFFF
3.發送0X01、0X00、0X00等待AS608回應,對比回應的資料即可完成握手
//與AS608握手 PS_HandShake
//引數: PS_Addr地址指標
//說明: 模塊返新地址(正確地址)
u8 PS_HandShake(u32 *PS_Addr)
{
SendHead();
SendAddr();
MYUSART_SendData(0X01);
MYUSART_SendData(0X00);
MYUSART_SendData(0X00);
delay_ms(200);
if(USART2_RX_STA&0X8000)//接收到資料
{
if(//判斷是不是模塊回傳的應答包
USART2_RX_BUF[0]==0XEF
&&USART2_RX_BUF[1]==0X01
&&USART2_RX_BUF[6]==0X07
)
{
*PS_Addr=(USART2_RX_BUF[2]<<24) + (USART2_RX_BUF[3]<<16)
+(USART2_RX_BUF[4]<<8) + (USART2_RX_BUF[5]);
USART2_RX_STA=0;
return 0;
}
USART2_RX_STA=0;
}
return 1;
}
然后按照內容提示進行操做

按下KEY1鍵就是錄入指紋

此時需要我們填寫指紋的位置,由于該模塊最多就能儲存300個指紋,所以位置就是1~300中任何一個數,

我們的指紋已經被成功錄入,
我們可以進行指紋讀取:

在紅框框住的,前面是我們的指紋位置,后面是我們的等級,也就是相似程度,可以這樣理解,
剩下的功能就不過多演示了,基本跟著提示來就沒有問題,
希望大家好好看看用戶手冊,我把鏈接放到下面:
https://pan.baidu.com/s/1HoqaqClOjuoHO5D-bHeUJA 提取碼:dte5
程式鏈接:https://pan.baidu.com/s/1v7yOCNp82kGRC_9qrAQGEA 提取碼:jm7p
上面我也說過,可以通過TCH引腳進行一系列操作以及拓展,希望大家加油!!!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296940.html
標籤:其他
