摘要:芯片內(nèi)置運(yùn)算單元,集成了指紋識(shí)別算法,能高效快速采集圖像并識(shí)別指紋特征。模塊配備了串口通訊接口,用戶無需研究復(fù)雜的圖像處理及指紋識(shí)別算法,只需通過簡(jiǎn)單的串口按照通訊協(xié)議便可控制模塊。我們的指紋已經(jīng)被成功錄入。
目錄
采用STM32F103RCT6作為主控制器
?STM32F103RCT6不含USB轉(zhuǎn)TTL芯片,需要外界接入
下圖為STM32F103RCT6原理圖
其中在RCT6中PA9,PA10為板子的USART1,原理圖中并沒有出現(xiàn)以上倆引腳,其引腳在為板子上標(biāo)識(shí)的TX,RX
?以下是工程中USART1的初始化程序設(shè)計(jì)
void uart_init(u32 bound) { //GPIO端口設(shè)置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA時(shí)鐘 //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; //復(fù)用推挽輸出 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 ;//搶占優(yōu)先級(jí)3 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子優(yōu)先級(jí)3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根據(jù)指定的參數(shù)初始化VIC寄存器 //USART 初始化設(shè)置 USART_InitStructure.USART_BaudRate = bound;//串口波特率 USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長(zhǎng)為8位數(shù)據(jù)格式 USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個(gè)停止位 USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗(yàn)位 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收發(fā)模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟串口接受中斷 USART_Cmd(USART1, ENABLE); //使能串口1 }
在上面的程序段中,我們可以清晰的看出來PA9,PA10都可以使用,PA9為TX,PA10為RX。
? ? ? ? ?AS608指紋識(shí)別模塊是ALIENTEK推出的一款高性能的光學(xué)指紋識(shí)別模塊。AS608模塊采用了國(guó)內(nèi)著名指紋識(shí)別芯片公司杭州晟元芯片技術(shù)有限公司(Synochip)的 AS608指紋識(shí)別芯片。芯片內(nèi)置DSP運(yùn)算單元,集成了指紋識(shí)別算法,能高效快速采集圖像并識(shí)別指紋特征。模塊配備了串口、USB通訊接口,用戶無需研究復(fù)雜的圖像處理及指紋識(shí)別算法,只需通過簡(jiǎn)單的串口、USB 按照通訊協(xié)議便可控制模塊。本模塊可應(yīng)用于各種考勤機(jī)、保險(xiǎn)箱柜、指紋門禁系統(tǒng)、指紋鎖等場(chǎng)合。
? ? ? ? 下面是AS608的一些具體參數(shù):
供電電壓 | ?3.3V(切勿使用5V,容易燒毀芯片) |
供電電流 | ?< 60mA |
指紋圖像錄入時(shí)間 | ?< 1s |
搜索時(shí)間 | < 1.0s(1:500時(shí),均值) |
可錄入指紋數(shù)量 | ?300 |
通訊接口 | USB/USART |
匹配方式 | 比對(duì)方式(1:1),搜索方式(1:N) |
? ? ? ? 注意!?。?!? ? ?AS608指紋模塊切勿接5V,一定要接3.3V
? ? ? ? 注意!?。?!? ? ?AS608指紋模塊切勿接5V,一定要接3.3V
? ? ? ? 注意!?。?!? ? ?AS608指紋模塊切勿接5V,一定要接3.3V
如果不相信的話可以去試試(如果你是土豪的話,完全跳過這一條)
下面?zhèn)z個(gè)圖就是我們AS608指紋模塊的引腳解釋:
D+和D-不用接,就算你想接也不一定能接上,反正根本就沒有那倆跟線的引腳。
其中5線(藍(lán)線)這個(gè)引腳就是作為我們輸出的引腳,話說每個(gè)模塊到頭來都是個(gè)開關(guān)而已,就是開關(guān)的啟動(dòng)方式不同罷了。
這個(gè)就不做過多介紹了,都是大家常用的東西。
AS608指紋模塊與單片機(jī)接線
VCC | GND | TX? | RX? | TCH | UA? |
3.3V | GND | PA3 | PA4 | PA6 | 3.3V |
?USB轉(zhuǎn)TTL與單片機(jī)接線
VCC | GND | TX | RX |
5V | GND | RX(PA10) | TX(PA9) |
?在RCT6中標(biāo)識(shí)的是TX與RX,其實(shí)他們就是單片機(jī)上的PA10,PA9上面已經(jīng)解釋過了,這里就不做過多的解釋了。
程序是按照正點(diǎn)原子中的歷程進(jìn)行修改的,此處使用的是串口進(jìn)行操作的
對(duì)于AS608指紋模塊我們首先要進(jìn)行握手,換句話也就是通過發(fā)送特定的16進(jìn)制數(shù)據(jù)將單片機(jī)與模塊進(jìn)行連接而已了。
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.發(fā)送包頭:也就是0XEF、0X01
2.發(fā)送地址:AS608的默認(rèn)地址是0XFFFFFFFF
3.發(fā)送0X01、0X00、0X00等待AS608響應(yīng),對(duì)比響應(yīng)的數(shù)據(jù)即可完成握手
//與AS608握手 PS_HandShake//參數(shù): 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)//接收到數(shù)據(jù) { if(//判斷是不是模塊返回的應(yīng)答包 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; }
然后按照內(nèi)容提示進(jìn)行操做
?按下KEY1鍵就是錄入指紋
?此時(shí)需要我們填寫指紋的位置,由于該模塊最多就能儲(chǔ)存300個(gè)指紋,所以位置就是1~300中任何一個(gè)數(shù)。
?我們的指紋已經(jīng)被成功錄入。
我們可以進(jìn)行指紋讀?。?/p>
?在紅框框住的,前面是我們的指紋位置,后面是我們的等級(jí),也就是相似程度,可以這樣理解。
剩下的功能就不過多演示了,基本跟著提示來就沒有問題。
希望大家好好看看用戶手冊(cè),我把鏈接放到下面:
https://pan.baidu.com/s/1HoqaqClOjuoHO5D-bHeUJA? ? ?提取碼:dte5
程序鏈接:https://pan.baidu.com/s/1v7yOCNp82kGRC_9qrAQGEA? ? ?提取碼:jm7p
上面我也說過,可以通過TCH引腳進(jìn)行一系列操作以及拓展,希望大家加油?。。。。?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/118871.html
摘要:宿舍智能門鎖設(shè)計(jì)采用作為主控芯片,作為與攝像監(jiān)控,液晶顯示屏作為顯示,指紋識(shí)別模塊繼電器模塊具有三種解鎖方式指紋解鎖密碼解鎖解鎖解鎖時(shí)密碼或者指紋錯(cuò)誤液晶顯示屏?xí)崾境鲥e(cuò),次錯(cuò)誤就會(huì)鎖定,需要等待分鐘才會(huì)解鎖。 ...
摘要:使用庫讀寫環(huán)境光照度傳感器本文將教大家如何快速使用庫讀取光照度數(shù)據(jù)。五實(shí)驗(yàn)樣機(jī)測(cè)試展示通過之前配置好的面板,通過涂鴉智能進(jìn)行配網(wǎng)實(shí)時(shí)采集光照度傳感器的數(shù)據(jù)。 使用STM32 HAL庫讀寫環(huán)境光照度傳感器(BH1750) 本文將教大家如何快速使用STM32HAL庫讀取光照度數(shù)據(jù)。 實(shí)現(xiàn)功能:通...
摘要:異步通信與同步通信異步通信異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。同步通信同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。配置串口設(shè)置為異步通信基礎(chǔ)參數(shù)波特率為。 ...
摘要:力矩控制模式電機(jī)在運(yùn)行過程的電流,始終等于給定的值。設(shè)定電流為零,彈簧不被拉伸。比如機(jī)械臂從點(diǎn)運(yùn)動(dòng)到點(diǎn),并限制揮舞過程中的最大速度和最大力矩。 目錄 說明一、電機(jī)...
摘要:緊接著上一篇博文。。。編寫串口中斷函數(shù)當(dāng)中斷發(fā)生的時(shí)候,程序就會(huì)執(zhí)行中斷服務(wù)函數(shù),我們?cè)谥袛喾?wù)函數(shù)中編寫相應(yīng)的邏輯代碼就可以了。將以下代碼編寫在中串口輸出重定義到注意頭文件需要包含標(biāo)準(zhǔn)庫,也就是。 ...
閱讀 2710·2023-04-25 20:19
閱讀 1968·2021-11-24 09:38
閱讀 1658·2021-11-16 11:44
閱讀 4483·2021-09-02 15:40
閱讀 1386·2019-08-30 15:55
閱讀 2046·2019-08-30 15:52
閱讀 3797·2019-08-29 17:20
閱讀 2330·2019-08-29 13:48