用as608默認的波特率略高,加載過快;建議忽略我的垃圾代碼(lcd1602均為自己手寫,lcd1602四線驅動,數據線為a4-a7,控制線為b0-b2,其中電源我連到了5v,對比我連到了3v的地線);
as608驅動參考于正點,不過沒接感應線,因此導致。。。。誰用誰知道,可能跳函數,因此延時較多,如果有更好的辦法,還請不利賜教。。。。因為感應線被占了,或許可以換別的位置,但我實在是。。單片機這個寒假就這樣吧。
回顧踩坑點,之前想要用51單片機做,但我一直上位機失敗,后來查詢技術人員發現,我的開發板,有一個max芯片。。。so,我購買了迷你也就是現在的板子,正如你所知道的,我抱著試試的態度,因為對比度不高,很難辨別,但奇跡降臨了,居然出現了,亮度極高的亂碼。 ,于是,一番優化和更改后,
成功驅動lcd1602,as608因為有參考,很快就做了出來。
網上查詢資料,還是51黑靠譜,所以很感謝老表 ,這長達三十多小時的有效學習中,51黑確實教會我很多,但說實話,一遍一遍的調試確實挺要命的。
總之,這就是我寒假的業余工作了。
暫時分別了,51黑的老哥們。
單片機源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "1602.h"
- #include "as608.h"
- #include "key.h"
- #include "usart2.h"
- int main(void)
- {
- u8 table1[]=" fingerprint stm";
- u8 table2[]=" add find del";
- u8 table3[]=" loading........";
- u8 table4[]=" add ok........";
- u8 table5[]=" find ok.......";
- u8 table6[]=" del ok.......";
- u8 table7[]=" open finger....";
- u8 table8[]=" receive failed ";
- u8 table9[]=" find failed ";
- u8 table10[]=" REG ok..... ";
- u8 t=0;
- int i;
- u8 ensure;
- u8 findensure;
- SearchResult seach;
- delay_init();
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- usart2_init(57600);
- KEY_Init();
- PS_StaGPIO_Init();
- print(table1,16,1);
- print(table2,16,2);
- while(1)
- {
- t=KEY_Scan(0); //得到鍵值
- switch(t)
- {
- case KEY0_PRES:
- print(table3,16,1);
- delay_ms(1000);
- ensure=PS_GetImage();
- if(ensure==0x00){
- print(table7,16,1);
- delay_ms(10000);}
- ensure=PS_GenChar(1);
- if(ensure==0x00){
- print(table3,16,1);
- delay_ms(10000);}
- ensure=PS_GetImage();
- if(ensure==0x00){
- print(table7,16,1);
- delay_ms(10000);}
- ensure=PS_GenChar(2);
- if(ensure==0x00){print(table3,16,1);
- delay_ms(10000);}
- ensure=PS_RegModel();
- if(ensure==0x00){
- print(table10,16,1);
- delay_ms(10000);}
- ensure=PS_StoreChar(2,61);
- if(ensure==0x00){
- print(table4,16,1);}
-
- delay_ms(10000);
- break;
-
- //search my fingerprint
- case KEY1_PRES:
- print(table3,16,1);
- delay_ms(10000);
- findensure=PS_GetImage();
- if(findensure==0x01){print(table7,16,1);
- delay_ms(10000);}
- findensure=PS_GenChar(1);
- if(findensure==0x01){print(table3,16,1);
- delay_ms(10000);}
- findensure=PS_Search(1,0,300,&seach);
- if(findensure==0x00){
- print(table5,16,1);
- delay_ms(100);}
- else if(findensure==0x01){
- print(table8,16,1);
- delay_ms(100);
- }else if(findensure==0x09){
- print(table9,16,1);
- delay_ms(100);
- }
-
- break;
-
-
- case WKUP_PRES:
- print(table3,16,1);
- delay_ms(100);delay_ms(100);delay_ms(100);
- while(PS_Empty()==0x00){
- print(table6,16,1);
- delay_ms(10);
- break;
- }
- break;
- default:
- delay_ms(10);
- }
- }
- }
-
復制代碼
所有資料51hei提供下載:
stm32的lcd1602指紋識別成功.7z
(238.57 KB, 下載次數: 92)
2019-2-11 23:58 上傳
點擊文件名下載附件
工程 下載積分: 黑幣 -5
|