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

標題: STM32F103+RFID(RC522)OLED 0.96顯示 源碼 [打印本頁]

作者: wxfhz    時間: 2017-7-22 10:06
標題: STM32F103+RFID(RC522)OLED 0.96顯示 源碼
該系統以STM32F103C8T6為核心(可自行修改成103系列其他芯片,修改編譯參數)。通過OLED 0.96顯示相關信息。通過對RFID模塊(RC522)的控制,讀取RFID標簽的信息,并通過串口上傳(可配套相應的上位機,完成簡單的考勤,安保等系統)

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "oled.h"
  3. #include "MAIN.h"
  4. #include "mfrc522.h"
  5. #include "usart.h"
  6. #include "string.h"

  7. unsigned char card1[4] = {0xF0,0x1C,0x70,0x3B};  //卡序列號
  8. unsigned char card2[4] = {0xDE,0x8A,0xDF,0x2B};  //卡序列號
  9. unsigned char card3[4] = {0xD2,0xB2,0x73,0x5B};
  10. unsigned char card4[4] = {0xB7,0x29,0xDF,0x2B};


  11. unsigned char snr, buf[16]="liu-bridge",bufr[16], TagType[2], SelectedSnr[4], DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};  
  12. unsigned char Read_Data[16],PassWd[6],WriteData[16],RevBuffer[30], MLastSelectedSnr[4],NewKey[16];                        
  13. char cardID[4];
  14. unsigned char kahao;
  15. void findcard();

  16. void GPIO_ini()
  17. {
  18.   GPIO_InitTypeDef  GPIO_InitStructure;
  19.   
  20.   /* Enable the GPIO Clock */
  21.   RCC_APB2PeriphClockCmd(MF522_RST_CLK, ENABLE);

  22.   /* Configure the GPIO pin */
  23.   GPIO_InitStructure.GPIO_Pin = MF522_RST_PIN;
  24.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  25.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  26.   GPIO_Init(MF522_RST_PORT, &GPIO_InitStructure);
  27.         
  28.   /* Enable the GPIO Clock */
  29.   RCC_APB2PeriphClockCmd(MF522_MISO_CLK, ENABLE);

  30.   /* Configure the GPIO pin */
  31.   GPIO_InitStructure.GPIO_Pin = MF522_MISO_PIN;
  32.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  33.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  34.   GPIO_Init(MF522_MISO_PORT, &GPIO_InitStructure);
  35.         
  36.   /* Enable the GPIO Clock */
  37.   RCC_APB2PeriphClockCmd(MF522_MOSI_CLK, ENABLE);

  38.   /* Configure the GPIO pin */
  39.   GPIO_InitStructure.GPIO_Pin = MF522_MOSI_PIN;
  40.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  41.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  42.   GPIO_Init(MF522_MOSI_PORT, &GPIO_InitStructure);
  43.         
  44.   /* Enable the GPIO Clock */
  45.   RCC_APB2PeriphClockCmd(MF522_SCK_CLK, ENABLE);

  46.   /* Configure the GPIO pin */
  47.   GPIO_InitStructure.GPIO_Pin = MF522_SCK_PIN;
  48.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  49.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  50.   GPIO_Init(MF522_SCK_PORT, &GPIO_InitStructure);
  51.         
  52.   /* Enable the GPIO Clock */
  53.   RCC_APB2PeriphClockCmd(MF522_NSS_CLK, ENABLE);

  54.   /* Configure the GPIO pin */
  55.   GPIO_InitStructure.GPIO_Pin = MF522_NSS_PIN;
  56.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  57.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  58.   GPIO_Init(MF522_NSS_PORT, &GPIO_InitStructure);
  59.         
  60.   /* Enable the GPIO Clock */
  61.   RCC_APB2PeriphClockCmd(LED_CLK, ENABLE);

  62.   /* Configure the GPIO pin */
  63.   GPIO_InitStructure.GPIO_Pin = LED_PIN;
  64.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  65.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

  66.   GPIO_Init(LED_PORT, &GPIO_InitStructure);
  67. }

  68. void InitializeSystem()
  69. {
  70.         LED_OFF;
  71.         delay_10ms(10);
  72.         PcdReset();
  73.         PcdAntennaOff();
  74.         PcdAntennaOn();  
  75.         M500PcdConfigISOType( 'A' );
  76.         LED_ON;
  77.         delay_10ms(10);        
  78.         LED_OFF;
  79.         delay_10ms(10);
  80.         LED_ON;
  81.         delay_10ms(10);        
  82.         LED_OFF;
  83. }

  84. int i,j;
  85. int main(void)
  86. {        
  87.         char status;
  88.         unsigned char rfidflag;
  89.         unsigned char discnt;
  90.         kahao=0;
  91.         GPIO_ini();  
  92.   InitializeSystem( );
  93.   uart_init(9600);
  94.         OLED_Init();
  95.         //Draw_Logo();
  96.   for(i=0;i<2000;i++)
  97.           for(j=0;j<2000;j++);
  98.         OLED_Fill(0x00);
  99.   OLED_ShowString1(0,0," RFID EPC SYS");
  100.         OLED_ShowString1(0,3," Status:  OK");
  101.         printf("\r\n This is a RFID System \r\n");

  102.         while(1)
  103.         { status= PcdRequest(REQ_ALL,TagType);
  104.                 if(!status)
  105.                 {
  106.                         status = PcdAnticoll(SelectedSnr);
  107.                         if(!status)
  108.                         {
  109.                                 status=PcdSelect(SelectedSnr);
  110.                                 if(!status)
  111.                                 {
  112.                                         snr = 1;  //扇區號1
  113.           status = PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr);// 校驗1扇區密碼,密碼位于每一扇區第3塊
  114.                                         {
  115.                                                 if(!status)
  116.                                                 {
  117.                                                         //status = PcdRead((snr*4+0), buf);  // 讀卡,讀取1扇區0塊數據到buf[0]-buf[16]
  118.                                                 //        buf[0]=2;buf[1]=2;buf[2]=3;buf[3]=4;buf[4]=5;buf[6]=1;;buf[7]=1;buf[8]=1;buf[9]=9;
  119.                                 //                        status = PcdWrite((snr*4+0), buf);  // 寫卡,將buf[0]-buf[16]寫入1扇區0塊
  120.                                                         if(!status)
  121.                                                         {
  122.                                                                 //讀寫成功,點亮LED
  123.                                                                 LED_ON;        
  124.                                                                 PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr);
  125.                                                                 status = PcdRead((snr*4+0), bufr);  
  126.                                                                
  127.                                                                 //printf(" %s \r\n",bufr );
  128.                                                     //printf("%s", SelectedSnr);
  129.                                                     findcard();
  130.                                                                 if(kahao==1)
  131.                                                           {  OLED_ShowString1(0,5," ID 1 Pass");
  132.                                                                          printf("%s","#1001[        DISCUZ_CODE_0        ]quot;);
  133.                                                                          discnt=0;
  134.                                                                          rfidflag=1;
  135.                                                                 }
  136.                                                                 else if(kahao==2)
  137.                                                           {  OLED_ShowString1(0,5," ID 2 Pass");
  138.                                                                          printf("%s","#1002[        DISCUZ_CODE_0        ]quot;);
  139.                                                                          discnt=0;
  140.                                                                          rfidflag=1;
  141.                                                                 }
  142.                                                                 else if(kahao==3)
  143.                                                           {  OLED_ShowString1(0,5," ID 3 Pass");
  144.                                                                          printf("%s","#1003[        DISCUZ_CODE_0        ]quot;);
  145.                                                                          discnt=0;
  146.                                                                          rfidflag=1;
  147.                                                                 }
  148.                                                                 else if(kahao==4)
  149.                                                           {  OLED_ShowString1(0,5," ID 4 Pass");
  150.                                                                          printf("%s","#1004[        DISCUZ_CODE_0        ]quot;);
  151.                                                                          discnt=0;
  152.                                                                          rfidflag=1;
  153.                                                                 }                                                               
  154.                                                                 //printf(" %s %s",bufr,SelectedSnr);
  155.                                                                 WaitCardOff();
  156.                                                         }
  157.                                                 }
  158.                                         }
  159.                                 }
  160.                         }
  161.                 }        
  162.                 LED_OFF;
  163.                 if(rfidflag==1)
  164.           { discnt++;
  165.                         if(discnt>200)
  166.                         { OLED_ShowString1(0,5,"          ");
  167.                                 discnt=0;
  168.                                 rfidflag=0;
  169.                         }
  170.                   OLED_DLY_ms(5);
  171.                 }
  172.   }
  173. }

  174. void findcard()
  175. { unsigned char ii;
  176.         for (ii=0;ii<4;ii++)          //比較卡序列號
  177.   { if (SelectedSnr[ii] != card1[ii])
  178.     { kahao=0;
  179.             break;
  180.           }
  181.           else
  182.           { if (ii==3)
  183.             { kahao=1;
  184.               goto A;
  185.               break;
  186.                   }
  187.           }
  188.   }
  189.   for (ii=0;ii<4;ii++)
  190.   { if (SelectedSnr[ii] != card2[ii])
  191.      { kahao=0;
  192.              break;
  193.            }
  194.            else
  195.            { if (ii==3)
  196.              { kahao=2;
  197.                                  goto A;
  198.                       break;
  199.                    }
  200.            }
  201.   }
  202.         for (ii=0;ii<4;ii++)
  203.   { if (SelectedSnr[ii] != card3[ii])
  204.      { kahao=0;
  205.              break;
  206.            }
  207.            else
  208.            { if (ii==3)
  209.              { kahao=3;
  210.                                  goto A;
  211.                       break;
  212.                    }
  213.            }
  214.   }
  215.         for (ii=0;ii<4;ii++)
  216.   { if (SelectedSnr[ii] != card4[ii])
  217. ……………………

  218. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
STM32_RFID&amp;OLED.rar (300.1 KB, 下載次數: 819)



作者: gujihua1977    時間: 2017-8-31 23:04
謝謝分享!1
作者: luke_you    時間: 2017-9-8 09:53
謝謝樓主,
作者: lishaoyu2012    時間: 2017-10-13 11:50
多謝多謝 很重要啊~~
作者: aptx4860    時間: 2017-11-22 15:43
正在找這一類的資料
作者: 憶生若水    時間: 2017-12-8 22:15
感謝分享
作者: qq360982114    時間: 2018-1-31 10:06
非常感謝
作者: qq360982114    時間: 2018-1-31 10:25
非常感謝
作者: zhujiu    時間: 2018-3-26 14:50
學習下
作者: zhujiu    時間: 2018-3-26 14:53
感謝分享
作者: 刺眼的光景    時間: 2018-4-28 21:45
好東西
作者: jinniuxing888    時間: 2018-5-20 21:08
好東西,感謝分享!
作者: 鋒灬    時間: 2018-6-3 20:40
好東西,感謝分享!
作者: 鋒灬    時間: 2018-6-14 15:46
小白想問下stm32板子和RC522模塊怎么接線
作者: 13671276812    時間: 2018-7-4 15:44
下載的不是rar文件,麻煩問一下需要用什么打開啊?

作者: xode    時間: 2018-7-6 11:14
謝謝分享~
作者: lasermiao    時間: 2018-8-9 01:32
感謝分享
作者: blue153    時間: 2018-8-15 16:29
謝謝分享!1

作者: z_z_j    時間: 2018-9-3 15:31
學習學習,
作者: caicai0219    時間: 2018-11-22 20:05
13671276812 發表于 2018-7-4 15:44
下載的不是rar文件,麻煩問一下需要用什么打開啊?

擴展拓展名,把.rar寫上

作者: c1971264164    時間: 2019-4-9 14:30
謝謝分享~~

作者: 孤劍酷    時間: 2019-7-31 18:41
并不能正常使用,不知為何,引腳的鏈接方式可以找到,貌似并不對
作者: 天風情    時間: 2019-8-9 13:57
OLED的主控是什么型號的啊
作者: marioner    時間: 2019-8-9 15:34
非常感謝樓主分享!
作者: woshige    時間: 2019-8-9 16:54
有沒有兄弟用過RC523啊,我想識讀ISO14443B的卡,但是網上找到的資料調試并沒成功,兄弟們有沒有啥經驗啊
作者: zhanghua20112    時間: 2019-10-10 12:53
感謝分享
作者: zhzs09200608    時間: 2019-12-29 21:47
謝謝分享!!!!
作者: zhzs09200608    時間: 2020-1-9 13:39
已經下載學習謝謝
作者: 笨哈哈    時間: 2020-4-5 23:37
感謝分享
作者: MEMO    時間: 2020-5-3 20:16
十分感謝

作者: MEMO    時間: 2020-5-3 20:16
十分感謝
作者: MEMO    時間: 2020-5-3 20:17
十分感謝
作者: zsm011029    時間: 2024-1-12 12:06
aptx4860 發表于 2017-11-22 15:43
正在找這一類的資料

剛好上學期做了這個




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久久高潮国产精品视 | 日日拍夜夜 | 色婷婷综合在线观看 | 自拍偷拍第一页 | 欧美成人猛片aaaaaaa | 久久久久久亚洲 | 99在线免费观看视频 | 综合精品| 午夜精品久久久久久久久久久久 | 一区二区三区精品在线 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 蜜桃视频在线观看免费视频网站www | 精品久久国产 | 国产精品视频久久 | 美女久久久久久久久 | 亚洲欧美国产毛片在线 | 亚洲中午字幕 | 亚洲一区二区三区久久 | 色婷婷综合成人av | 国产欧美在线 | 欧美国产中文字幕 | 永久免费视频 | 国产亚洲精品91 | 国产视频中文字幕在线观看 | 夜夜操天天操 | 在线国产一区二区 | 久久久久久久久久久久亚洲 | 欧美黄色性生活视频 | 欧美日韩综合精品 | 天天干成人网 | 久久久久亚洲精品国产 | 成人在线视频免费观看 | 97精品超碰一区二区三区 | 国产精品久久久久久久白浊 | 日韩国产中文字幕 | 天天干天天干 | 波多野结衣电影一区 | 国产精品18hdxxxⅹ在线 | 久久精品国内 | 欧美老妇交乱视频 | 国产亚洲一区二区三区 |