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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32單片機(jī)RC522門禁程序(含保存IC卡功能掉電不丟失)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

單片機(jī)源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "rc522.h"
  5. #include "LED.h"
  6. #include "Key.h"
  7. #include "OLED.h"
  8. #include "Store.h"
  9. #include "Servo.h"

  10. /**
  11. *   連線說明:
  12. *   1--SDA  <----->PA4
  13. *   2--SCK  <----->PA5
  14. *   3--MOSI <----->PA7
  15. *   4--MISO <----->PA6
  16. *   5--懸空
  17. *   6--GND <----->GND
  18. *   7--RST <----->PB0
  19. *   8--VCC <----->VCC
  20. **/
  21. uint32_t num;  //
  22. uint8_t j = 0;
  23. int main(void)
  24. {
  25.     delay_init();                     //延時函數(shù)初始化
  26.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  27.     uart_init(115200);                 //串口初始化為115200
  28.     RC522_Init();       //初始化射頻卡模塊
  29.                
  30.                 LED_Init();                //LED???
  31.                 Key_Init();                //?????
  32.                 OLED_Init();                //OLED???
  33.                 Store_Init();
  34.                 Servo_Init();                //?????
  35.        
  36.     while(1)
  37.     {
  38.                         Key_GetNum();
  39.                         //先將sn清零
  40.                         SN[0]=0X00;
  41.                         SN[1]=0X00;
  42.                         SN[2]=0X00;
  43.                         SN[3]=0X00;
  44.                        
  45.                         if (KeyNum == 1)                       
  46.                         {
  47.                                 //這里執(zhí)行讀卡
  48.                                 OLED_ShowString(1, 1, "moshi:       ");
  49.                                 OLED_ShowString(1, 1, "moshi:du");       
  50.                                 RC522_Handel();
  51.                                  //
  52.                                 num = (uint32_t)SN[0] << 24 | (uint32_t)SN[1] << 16 | (uint32_t)SN[2] << 8 | SN[3];  
  53.                                 OLED_ShowHexNum(2, 1, num, 8);
  54.                                         //將存儲里的卡號讀出來對比這個卡號是否開鎖
  55.                                 for (j = 1; j < 255; j ++)                                //
  56.                                 {
  57.                                         if(num==0x00000000){
  58.                                                 //跳出循環(huán)
  59.                                                  break;
  60.                                         }else        if(Store_Data[j]==0x00000000){
  61.                                                 OLED_ShowString(3, 1, "                  ");
  62.                                                 OLED_ShowString(3, 1, "error:failed");       
  63.                                                
  64.                                                 //跳出循環(huán)
  65.                                                  break;  //
  66.                                         }
  67.                                         else if(Store_Data[j]==num){
  68.                                                 OLED_ShowString(3, 1, "                  ");
  69.                                                 OLED_ShowString(3, 1, "success:ok");
  70.                                                 //開門
  71.                                                 Servo_SetAngle(90);
  72.                                                 delay_ms(5000);       
  73.                                                 Servo_SetAngle(0);
  74.                                                 //跳出循環(huán)
  75.                                                  break;  //
  76.                                         }
  77.                                 }
  78.                                
  79.                         }
  80.                        
  81.                         if (KeyNum == 2)                       
  82.                         {
  83.                                 //這里執(zhí)行授權(quán)
  84.                                 OLED_ShowString(1, 1, "moshi:shouqun");       
  85.                                 RC522_Handel();
  86.                                  //
  87.                                 num = (uint32_t)SN[0] << 24 | (uint32_t)SN[1] << 16 | (uint32_t)SN[2] << 8 | SN[3];  
  88.                                 OLED_ShowHexNum(2, 1, num, 8);
  89.                                 //將存儲里的卡號讀出來對比這個卡號是否存在
  90.                                 for (j = 1; j < 255; j ++)                                //
  91.                                 {
  92.                                         if(num==0x00000000){
  93.                                                 //跳出循環(huán)
  94.                                                  break;
  95.                                         }else        if(Store_Data[j]==num){
  96.                                                 OLED_ShowString(3, 1, "                  ");
  97.                                                 OLED_ShowString(3, 1, "success:exist");       
  98.                                                
  99.                                                 //跳出循環(huán)
  100.                                                  break;  //
  101.                                         }else        if(Store_Data[j]==0x00000000){
  102.                                                 Store_Data[j] = num;
  103.                                                 Store_Save();
  104.                                                 OLED_ShowString(3, 1, "                  ");
  105.                                                 OLED_ShowString(3, 1, "success:save ok");       
  106.                                                 delay_ms(5000);
  107.                                                 //跳出循環(huán)
  108.                                                  break;  //
  109.                                         }
  110.                                        
  111.                                 }
  112.                         }
  113.         
  114.     }
  115. }
復(fù)制代碼

原理圖: 無
仿真: 無
代碼: RFID-RC522.7z (226.75 KB, 下載次數(shù): 83)

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:370644 發(fā)表于 2024-2-19 16:39 | 只看該作者
樓主,這個程序您測試過嗎?為什么用不了呢?
回復(fù)

使用道具 舉報

板凳
ID:1071040 發(fā)表于 2024-2-20 13:07 | 只看該作者
yinqing452 發(fā)表于 2024-2-19 16:39
樓主,這個程序您測試過嗎?為什么用不了呢?

提示什么錯誤?
回復(fù)

使用道具 舉報

地板
ID:1071040 發(fā)表于 2024-2-20 13:30 | 只看該作者
yinqing452 發(fā)表于 2024-2-19 16:39
樓主,這個程序您測試過嗎?為什么用不了呢?

測試的芯片是stm32f103c8t6,芯片不同內(nèi)置存儲的地址會有所不同。
回復(fù)

使用道具 舉報

5#
ID:1071040 發(fā)表于 2024-2-22 11:28 | 只看該作者
原理圖是stlink的下載方式,我測試的時候是用ttl的下載方式,如果要使用stlink的方式下載想要自信再配置一下。
回復(fù)

使用道具 舉報

6#
ID:932262 發(fā)表于 2024-4-8 16:26 | 只看該作者
cxjbook 發(fā)表于 2024-2-20 13:30
測試的芯片是stm32f103c8t6,芯片不同內(nèi)置存儲的地址會有所不同。

工程打開之后的默認(rèn)芯片是STM32F103ZE,改成C8之后好多報錯
回復(fù)

使用道具 舉報

7#
ID:1071040 發(fā)表于 2024-4-9 13:18 | 只看該作者
退役的人 發(fā)表于 2024-4-8 16:26
工程打開之后的默認(rèn)芯片是STM32F103ZE,改成C8之后好多報錯

由于代碼是多個項(xiàng)目拼接的,所以會有一點(diǎn)設(shè)置上的問題,但目前ttl的燒錄方式的話是測試通過的。
回復(fù)

使用道具 舉報

8#
ID:1119044 發(fā)表于 2024-5-1 19:23 來自手機(jī) | 只看該作者
大佬用什么軟件畫的圖
回復(fù)

使用道具 舉報

9#
ID:1071040 發(fā)表于 2024-5-2 13:09 | 只看該作者
ZhengX5897 發(fā)表于 2024-5-1 19:23
大佬用什么軟件畫的圖

很明顯,原圖不是我畫的,后面畫的亂七八糟那個是我畫的
回復(fù)

使用道具 舉報

10#
ID:845150 發(fā)表于 2024-6-1 21:19 | 只看該作者
樓主,用ttl的下載方式?jīng)]oled顯示,用不了。
回復(fù)

使用道具 舉報

11#
ID:1071040 發(fā)表于 2024-6-3 08:37 | 只看該作者
gz5353741 發(fā)表于 2024-6-1 21:19
樓主,用ttl的下載方式?jīng)]oled顯示,用不了。

可以用的,兩個按鈕一個是授權(quán)模式,一個是讀取模式
回復(fù)

使用道具 舉報

12#
ID:845150 發(fā)表于 2024-6-27 11:47 | 只看該作者
cxjbook 發(fā)表于 2024-6-3 08:37
可以用的,兩個按鈕一個是授權(quán)模式,一個是讀取模式

我用mcuisp 0.993上傳可以了,謝謝樓主分享。

51hei圖片_20240627114733.jpg (181.11 KB, 下載次數(shù): 21)

51hei圖片_20240627114733.jpg

51hei.jpg (108.88 KB, 下載次數(shù): 21)

51hei.jpg
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91电影院 | 久久久新视频 | 亚洲导航深夜福利涩涩屋 | 午夜成人免费视频 | 久久99精品国产 | 久久久久国产 | 伊人网国产 | 欧美一区在线视频 | 国产精品国产精品国产专区不卡 | 国产精品毛片无码 | 久久国产精品久久久久久久久久 | 亚洲精品一区二区三区在线观看 | 成人高清在线视频 | 国产欧美在线视频 | 91亚洲国产亚洲国产 | 日本在线免费看最新的电影 | 日韩视频三区 | 亚洲a人| 黄色免费三级 | 欧洲成人 | 久久人人爽人人爽人人片av免费 | 国产精品成人一区 | 久久噜噜噜精品国产亚洲综合 | 日韩综合在线视频 | 美女黄色在线观看 | 91看片在线 | 国产精品99久久久久久大便 | 亚州精品天堂中文字幕 | 中文字幕乱码亚洲精品一区 | 国产精品久久久久久一区二区三区 | 欧美福利一区 | 日韩一区二区三区精品 | 亚洲最大看片网站 | 久久久久久久久久久久久久久久久久久久 | 蜜桃特黄a∨片免费观看 | 天天操天天射天天舔 | av在线一区二区三区 | 日韩在线一区二区 | 久久久精品 | 97天天干 | dy天堂|