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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5083|回復: 2
打印 上一主題 下一主題
收起左側

rc522的讀卡程序,主要實現讀卡功能 串口發送卡號

  [復制鏈接]
跳轉到指定樓層
樓主
ID:541219 發表于 2019-7-19 17:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用串口發送卡號

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"                           
  5. #include "lcd.h"
  6. #include "spi2.h"
  7. #include "rc522.h"
  8. #include "usb_lib.h"
  9. #include "hw_config.h"
  10. #include "usb_pwr.h"         



  11. unsigned char SN[4]; //卡號
  12. extern u8  IDA[10];
  13. extern u8  IDB[10];

  14. int main(void)
  15. {                        
  16.         u8 cmdb[2];
  17.         u8 status;
  18. //         u16 t;
  19. //        u16 len;        
  20. //        u16 times=0;   
  21.         u8 usbstatus=0;        
  22.   Stm32_Clock_Init(9);        //系統時鐘設置
  23.         uart_init(72,115200);        //串口初始化為115200
  24.         delay_init(72);                            //延時初始化
  25.         OUTPUT_Init();                         //輸出模塊初始化
  26.         LED_Init();                                  //初始化與LED連接的硬件接口
  27.          LCD_Init();                                //初始化LCD
  28.         SPI1_Init();
  29.   SPI1_SpeedSet(6); //APB1的256分頻
  30.          POINT_COLOR=RED;                //設置字體為紅色
  31.         LCD_ShowString(30,50,200,16,16,"WarShip STM32");        
  32.         LCD_ShowString(30,70,200,16,16,"USB Virtual USART TEST");        
  33.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  34.         LCD_ShowString(30,110,200,16,16,"2015/1/28");  
  35.          LCD_ShowString(30,130,200,16,16,"USB Connecting...");//提示USB開始連接
  36.         delay_ms(1800);
  37.         USB_Port_Set(0);         //USB先斷開
  38.         delay_ms(700);
  39.         USB_Port_Set(1);        //USB再次連接
  40.          Set_USBClock();   
  41.          USB_Interrupts_Config();   
  42.          USB_Init();        
  43.         CLR_NFC_RST;
  44.         delay_ms(10);
  45.         SET_NFC_RST;
  46.         delay_ms(1);
  47.         PcdConfig('A');
  48.         delay_ms(1);
  49.         while(1)
  50.         {
  51.                         if(usbstatus!=bDeviceState)//USB連接狀態發生了改變.
  52.                         {
  53.                                         usbstatus=bDeviceState;//記錄新的狀態
  54.                                         if(usbstatus==CONFIGURED)
  55.                                         {
  56.                                                         POINT_COLOR=BLUE;
  57.                                                         LCD_ShowString(30,130,200,16,16,"USB Connected    ");//提示USB連接成功
  58.                                                         LED1=0;//DS1亮
  59.                                         }else
  60.                                         {
  61.                                                         POINT_COLOR=RED;
  62.                                                         LCD_ShowString(30,130,200,16,16,"USB disConnected ");//提示USB斷開
  63.                                                         LED1=1;//DS1滅
  64.                                         }
  65.                         }
  66.                         #if 1
  67.                         
  68.                         PcdConfig('A');
  69.                         delay_ms(1);
  70.                         cmdb[1] = 0x52;
  71.                         delay_ms(1);
  72.                         
  73.                         status = ComReqA(cmdb);
  74.                         if(status == MI_OK)
  75.                         {
  76.                                         LED0 = 0;
  77.                                         usb_printf("ID:%02x %02x %02x %02x\r\n",IDA[0],IDA[1],IDA[2],IDA[3]);//發送卡號
  78.                                         //printf("ID:%02x %02x %02x %02x\r\n",IDA[0],IDA[1],IDA[2],IDA[3]);//發送卡號
  79.                         }
  80.                         else LED0 = 1;
  81.                         delay_ms(10);
  82.                         
  83.                         #endif
  84.                         #if 1
  85.         
  86.                         PcdConfig('B');
  87.                         delay_ms(1);
  88.                         
  89.                         cmdb[1] = 0x08;
  90.                         status = ComReqB(cmdb);
  91.                         if(status == MI_OK)
  92.                         {
  93.                                         LED1 = 0;
  94.                                         usb_printf("ID:%02x %02x %02x %02x %02x\r\n",IDB[0],IDB[1],IDB[2],IDB[3],IDB[4]);
  95.                                         //printf("ID:%02x %02x %02x %02x %02x\r\n",IDB[0],IDB[1],IDB[2],IDB[3],IDB[4]);//發送卡號
  96.                         }      
  97.                         #endif
  98.                         CLR_NFC_RST;
  99.                         delay_ms(250);
  100.                         LED1 = 1;
  101.                         LED0 = 1;
  102.                         
  103.                         #if 0
  104.                         if(USB_USART_RX_STA&0x8000)
  105.                         {                                          
  106.                                         len=USB_USART_RX_STA&0x3FFF;//得到此次接收到的數據長度
  107.                                         printf("\r\n您發送的消息為:%d\r\n\r\n",len);
  108.                                         for(t=0;t<len;t++)
  109.                                         {
  110.                                                         USB_USART_SendData(USB_USART_RX_BUF[t]);//以字節方式,發送給USB
  111.                                         }
  112.                                         printf("\r\n\r\n");//插入換行
  113.                                         USB_USART_RX_STA=0;
  114.                         }
  115.                         else
  116.                         {
  117.                                         times++;
  118.                                         if(times%5000==0)
  119.                                         {
  120.                                                         usb_printf("\r\n戰艦STM32開發板USB虛擬串口實驗\r\n");
  121.                                                         usb_printf("正點原子@ALIENTEK\r\n\r\n");
  122.                                         }
  123.                                         if(times%200==0)usb_printf("請輸入數據,以回車鍵結束\r\n");  
  124.                                         if(times%30==0)LED0=!LED0;//閃爍LED,提示系統正在運行.
  125.                                         delay_ms(10);   
  126.                         }
  127.                         #endif
  128.                
  129.         }
  130. }
復制代碼

所有資料51hei提供下載:
RC522_AB.7z (182.62 KB, 下載次數: 68)



評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:221340 發表于 2020-3-9 17:30 | 只看該作者
非常漂亮
回復

使用道具 舉報

板凳
ID:930776 發表于 2021-6-1 16:48 | 只看該作者
非常漂亮
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文成人在线 | 日韩精品一区二区不卡 | 欧美mv日韩mv国产网站91进入 | 成年视频在线观看 | 精品一区二区三区av | 国产网站在线播放 | 成人欧美一区二区三区视频xxx | 91在线视频免费观看 | 九九综合| 波多野结衣一区二区三区在线观看 | 久久尤物免费一区二区三区 | 国产视频中文字幕 | 精品日韩一区二区三区 | 久亚州在线播放 | 亚洲精品电影网在线观看 | 欧美.com | 亚洲欧美国产精品久久 | 在线看h| 久草福利 | 激情久久久久 | 日韩成人高清 | 久久久久亚洲国产| 国产在线91| 久久人人网 | 久久亚洲二区 | 国产精品国产成人国产三级 | 久久中文字幕一区 | 国产在线一区二区三区 | 97人人爱| h视频免费在线观看 | 毛片综合| 久久国产成人午夜av影院武则天 | 成人在线日韩 | 亚洲视频一区在线播放 | 国产精品久久久久久久岛一牛影视 | 国产精品伦一区二区三级视频 | xxx视频| 亚洲欧洲成人 | 久久精品小短片 | 欧美精品一区在线发布 | 精品美女在线观看视频在线观看 |