久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7660|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

基于STM32+FPM10A指紋識別的設(shè)計(jì)(源碼+原理圖+視頻)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
文件包括:源程序、原理圖、模塊資料、演示視頻。

視頻:


FPM10A資料:
為滿足不同客戶需求,模塊系統(tǒng)提供了大量資源提供給用戶系統(tǒng)使用。
4.1 用戶記事本
模塊在FLASH中開辟了一個(gè)512字節(jié)(16頁╳32 字節(jié))的存儲區(qū)域開放給上位機(jī)使用,作為用戶記事本。用戶可將自己需要斷電保護(hù)的數(shù)據(jù)存儲(參見WriteNotepad指令)在該空間指定的頁面或讀出(參見ReadNotepad指令)指定頁的內(nèi)容。
注意寫記事本某一頁的時(shí)候,該頁32 字節(jié)的內(nèi)容被整體寫入,原來的內(nèi)容被覆蓋。
4.2 緩沖區(qū)
模塊 RAM內(nèi)設(shè)有一個(gè)圖像緩沖區(qū)ImageBuffer與二個(gè)512 bytes 大小的特征文件緩沖區(qū)CharBuffer1和CharBuffer2。用戶可以通過指令讀寫任意一個(gè)緩沖區(qū)。 圖像緩沖區(qū)和兩個(gè)特征文件緩沖區(qū)中的內(nèi)容在模塊斷電時(shí)不保存。
4.2.1 圖像緩沖區(qū)
圖像緩沖區(qū) ImageBuffer 用于存放圖像數(shù)據(jù)和模塊內(nèi)部圖像處理使用。上傳/下載圖象時(shí),圖像格式為256╳288像素。
通過 UART口上傳或下載圖像時(shí)為了加快速度,只用到像素字節(jié)的高四位,即采用16級灰度,每字節(jié)表示兩個(gè)像素(高四位為一個(gè)像素,低四位為同一行下一相鄰列的一個(gè)像素,即將兩個(gè)像素合成一個(gè)字節(jié)傳送)。由于圖象為 16個(gè)灰度等級,上傳到PC進(jìn)行顯示時(shí)(對應(yīng) BMP格式),應(yīng)將灰度等級進(jìn)行擴(kuò)展(擴(kuò)展為256級灰度,即 8bit位圖格式)。 通過 USB口傳送則是整8位像素,即 256灰度等級。
4.2.2 特征文件緩沖區(qū)
特征文件緩沖區(qū)CharBuffer1或 CharBuffer2既可以用于存放普通特征文件也可以用于存放模板特征文件。
4.3 指紋庫
模塊在FLASH中開辟了一段存儲區(qū)域作為指紋模板存放區(qū),即俗稱的指紋庫。指紋庫中的數(shù)據(jù)是斷電保護(hù)的。
指紋模板按照序號存放,若指紋庫容量為N,則指紋模板在指紋庫中的序號定義為:0、1、2------N-2、N-1。用戶只能根據(jù)序號訪問指紋庫內(nèi)容。
4.4 系統(tǒng)配置參數(shù)
為方便用戶使用,模塊開放部分系統(tǒng)參數(shù),允許用戶通過指令,單個(gè)修改指定(通過參數(shù)序號)的參數(shù)數(shù)值。參見設(shè)置模塊系統(tǒng)基本參數(shù)指令 SetSysPara 和讀系統(tǒng)參數(shù)指令ReadSysPara。
上位機(jī)發(fā)修改系統(tǒng)參數(shù)指令時(shí),模塊先按照原配置進(jìn)行應(yīng)答,應(yīng)答之后修改系統(tǒng)設(shè)置,并將配置記錄于FLASH,系統(tǒng)下次上電后,將按照新的配置工作。
4.4.1 波特率控制(參數(shù)序號:4)
  該參數(shù)控制模塊與上位機(jī)通過UART 通訊時(shí)的通訊波特率, 若參數(shù)值為N(N取值范圍圍1~12),對應(yīng)波特率為(9600╳N)bps。
該參數(shù)控制指紋比對和搜索時(shí)比對閥值,分為 5級,取值范圍為:1、2、3、4、5。 安全等級為1時(shí)認(rèn)假率最高, 拒認(rèn)率最低。安全等級為5時(shí)認(rèn)假率最低, 拒認(rèn)率最高。  
4.4.3 數(shù)據(jù)包長度(參數(shù)序號:6)
該參數(shù)控制模塊與上位機(jī)通訊時(shí),每次傳送時(shí)允許數(shù)據(jù)中包內(nèi)容的最大長度,取值范圍為:0、1、2、3,對應(yīng)長度(字節(jié)數(shù))分別為:32、64、128、256。   

單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"               
  3. #include "delay.h"        
  4. #include "key.h"
  5. #include "lcd1602.h"
  6. #include "fpmxx.h"


  7. unsigned char LCD_ID_11[16] = {"    Huan Ying   "};
  8. unsigned char LCD_ID_22[16] = {"     Shi Bai    "};
  9. unsigned char LCD_ID_33[16] = {"  Qing Shi Yong "};


  10. void FPMXX_Check_Module()
  11. {
  12.          unsigned int i=0;
  13.          FPMXX_Cmd_Check();

  14.    for(i=0;i<12;i++)
  15.          {
  16.            FPMXX_RECEICE_BUFFER[i] = UART_Receive_Byte();//UART Receive a byteg
  17.    }

  18.          if(FPMXX_RECEICE_BUFFER[8]==0x03)
  19.          {
  20.                  for(i=0;i<556;i++)
  21.                  {
  22.                          switch(i)
  23.                          {
  24.                                  case 37:FPMXX_RECEICE_BUFFER[1] = UART_Receive_Byte();break;
  25.                                  case 38:FPMXX_RECEICE_BUFFER[2] = UART_Receive_Byte();break;
  26.                                  case 39:FPMXX_RECEICE_BUFFER[3] = UART_Receive_Byte();break;
  27.                                  case 40:FPMXX_RECEICE_BUFFER[4] = UART_Receive_Byte();break;
  28.                                  case 41:FPMXX_RECEICE_BUFFER[5] = UART_Receive_Byte();break;
  29.                                  default:FPMXX_RECEICE_BUFFER[0] = UART_Receive_Byte();
  30.                          }
  31.                  }
  32.                  
  33.                  //判斷指紋模塊型號
  34.                  if(FPMXX_RECEICE_BUFFER[1] == 0x46 && +
  35.                           FPMXX_RECEICE_BUFFER[2] == 0x50 && +
  36.                                 FPMXX_RECEICE_BUFFER[3] == 0x4D && +
  37.                                 FPMXX_RECEICE_BUFFER[4] == 0x31 && +
  38.                                 FPMXX_RECEICE_BUFFER[5] == 0x30)
  39.                  {
  40.                          L1602_string(1,1,LCD_ID_11);
  41.                          while(1)
  42.                          {
  43.                                  if(KEY0 == 0)
  44.                                  {
  45.                                          Delay_Ms(10);
  46.                                          while(KEY0 == 0);
  47.                                          Delay_Ms(100);
  48.                                          break;
  49.                                  }
  50.                                  Delay_Ms(100);
  51.                          }
  52.                  }
  53.          }
  54. }

  55.                                        
  56. int main(void)
  57. {                                                               
  58.           Stm32_Clock_Init(9);//系統(tǒng)時(shí)鐘設(shè)置
  59.         delay_init(72);                //延時(shí)初始化
  60.         uart_init(72,57600); //串口1初始化         
  61.         
  62.     KEY_Init();
  63.         L1602_init();
  64.         Delay_Ms(20);
  65.         USART1->DR=0X00;
  66.         while((USART1->SR&0X40)==0);//等待發(fā)送結(jié)束
  67.         Delay_Ms(20);
  68.         L1602_string(1,1,LCD_ID_22);
  69.         FPMXX_Check_Module();
  70.         while(1)
  71.         {
  72.         L1602_string(1,1,LCD_ID_11);
  73.                 L1602_string(2,1,LCD_ID_33);
  74.                 //添加指紋
  75.                 if(KEY0 == 0)
  76.                 {
  77.                         Delay_Ms(10);
  78.                         while(KEY0==0); //等待松開按鍵
  79.                         Delay_Ms(100);
  80.                         FPMXX_Add_Fingerprint();
  81.                 }
  82.                 //添加指紋
  83.                
  84.                 //搜索指紋
  85.                 if(KEY1 == 0)
  86.                 {
  87.                         Delay_Ms(10);
  88.                         while(KEY1==0); //等待松開按鍵
  89.                         Delay_Ms(100);
  90.                         FPMXX_Find_Fingerprint();
  91.                 }
  92.                 //搜索指紋        

  93.                 //清空指紋
  94.                 if(KEY2 == 0)
  95.                 {
  96.                         Delay_Ms(10);
  97.                         while(KEY2==0); //等待松開按鍵
  98.                         Delay_Ms(100);
  99.                         FPMXX_Delete_All_Fingerprint();
  100.                 }
  101.                 //清空指紋
  102. ……………………

  103. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼


所有資料51hei提供下載:
STM32指紋識別.zip (835.46 KB, 下載次數(shù): 175)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:293376 發(fā)表于 2018-3-17 23:13 | 只看該作者
帥氣!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:246091 發(fā)表于 2018-3-19 09:14 來自觸屏版 | 只看該作者
厲害了
回復(fù)

使用道具 舉報(bào)

地板
ID:489621 發(fā)表于 2019-3-20 13:10 | 只看該作者
親 ,你們的資料我在做 時(shí)候遇到了問題
回復(fù)

使用道具 舉報(bào)

5#
ID:561394 發(fā)表于 2019-6-12 23:45 | 只看該作者
親 不會做啊
回復(fù)

使用道具 舉報(bào)

6#
ID:516571 發(fā)表于 2019-6-13 10:30 | 只看該作者
可以可以,值得學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

7#
ID:293128 發(fā)表于 2019-6-13 10:41 | 只看該作者
厲害了
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧洲视频 | 亚洲天堂网站 | 亚洲欧美日韩精品久久亚洲区 | 91精品久久久 | 久草在线高清 | 一区二区三区视频播放 | 国产ts人妖另类 | 爱草在线 | 九九综合九九 | 成人精品久久 | 91社区在线观看高清 | 久久精品视频9 | 免费观看羞羞视频网站 | 久久精品99国产精品 | 欧美精品久久 | 国产一级在线视频 | 国产精品久久久久久久久久久久 | 亚洲视频免费播放 | 天天人人精品 | 成人免费视频网站在线观看 | 免费av一区二区三区 | 国产高清免费在线 | 国产特级毛片 | 综合精品在线 | 天天射影院 | 欧一区| 国产精品久久久久久久岛一牛影视 | 国产精品亚洲视频 | 久久综合亚洲 | 91精品国产综合久久久久久丝袜 | 久久精品99| 日韩精品在线免费 | 亚洲精品一区在线观看 | 玖玖色在线视频 | 日韩一二三区视频 | 一区二区三区在线免费看 | 免费在线观看毛片 | 一区二区三区中文字幕 | 亚洲一区二区三区视频 | 欧美成人一区二区三区 | 玖玖在线精品 |