上面是我的微信和QQ群,欢迎新朋友的加入。

目录

1.硬件平台

2.驱动实现

3.循环扫卡测试程序

4.TYPEB射频卡扫描

5.TYPEA射频卡扫描

6.身份证UID读取


1.硬件平台

1.STM32F103+FM17550

2.卡片类型:身份证、TYPEA/B卡、银行卡

2.驱动实现

1.硬件SPI,配置如下

/* SPI1 init function */
static void MX_SPI1_Init(void)
{/* SPI1 parameter configuration*/hspi1.Instance = SPI1;hspi1.Init.Mode = SPI_MODE_MASTER;hspi1.Init.Direction = SPI_DIRECTION_2LINES;hspi1.Init.DataSize = SPI_DATASIZE_8BIT;hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;hspi1.Init.NSS = SPI_NSS_SOFT;hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;hspi1.Init.TIMode = SPI_TIMODE_DISABLE;hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;hspi1.Init.CRCPolynomial = 10;if (HAL_SPI_Init(&hspi1) != HAL_OK){Error_Handler();}}

3.循环扫卡测试程序

/*********************************************
** 函数描述:循环寻卡
** 输入参数:无
** 返回值  :无
** 说明:
*********************************************/
void Find_Card(void)
{volatile unsigned char statues;unsigned int Rec_len;               //卡片返回数据长度statues=TypeA_CardActive(picc_atqa,picc_uid,picc_sak);if(statues != TRUE){FM175X_SoftReset();Rec_len = 0;Pcd_ConfigISOType(1);             //设置TypeBSet_Rf(3);   //turn on radiostatues=TypeB_WUP(&Rec_len,Send_Buff+Data,PUPI);//寻卡 Standard     send request command Standard modeif(statues == TRUE)statues=TypeB_Select(PUPI,&Rec_len,Send_Buff+Data);                }if(statues == TRUE){HAL_Delay(10);}         HAL_Delay(1000);    Set_Rf(0);   //turn off radio
}

4.TYPEB射频卡扫描

/*************************************************
** 函数描述:测试TYPEB卡
** 输入参数:无
** 返回值  :无
** 说明:
*************************************************/
void Test_CardB(void)
{uint8_t status;unsigned int Rec_len;               //卡片返回数据长度HAL_Delay(1000);FM175X_SoftReset();   Rec_len = 0;Pcd_ConfigISOType(1);             //设置TypeBSet_Rf(3);                        //turn on radiostatus=TypeB_WUP(&Rec_len,Send_Buff,PUPI);//寻卡 Standard    send request command Standard modeif(Rec_len == 0x60){status=TypeB_Select(PUPI,&Rec_len,Send_Buff);if(status == TRUE){status=TypeB_GetUID(&Rec_len,Send_Buff);if(status == TRUE){junValue++;}}}
}

5.TYPEA射频卡扫描

/***********************************************************
** 函数描述:测试TYPEA卡
** 输入参数:无
** 返回值  :无
** 说明:
***********************************************************/
void Test_CardA(void)
{uint8_t status;//激活卡(寻卡,防冲突,选卡)status=TypeA_CardActive(picc_atqa,picc_uid,picc_sak);if (status != TRUE){//激活失败return;}status=Mifare_Auth(0x00,0x01,DefualtKey,picc_uid);    //card authenticationif (status != TRUE){//认证失败return;}//测试的时候避免反复写数据if(junValue){status=Mifare_Blockwrite(0x04,DefualtData);  //block write functionif (status != TRUE){//写数据失败return;}junValue = 0;}status=Mifare_Blockread(0x04,Send_Buff); //bolck read function(读04块的数据)if (status != TRUE){//读数据失败return;}
}

6.身份证UID读取

//检测TYPEB 射频卡FM175X_SoftReset(); Rec_len = 0;Pcd_ConfigISOType(1);             //设置TypeBSet_Rf(3);                        //turn on radiostatus=TypeB_WUP(&Rec_len,Send_Buff,PUPI);//寻卡 Standard    send request command Standard modeif(Rec_len == 0x60){status=TypeB_Select(PUPI,&Rec_len,Send_Buff);if(status == TRUE){status=TypeB_GetUID(&Rec_len,Send_Buff);if(status == TRUE){for(uint8_t i=0;i<12;i++){HID_SendHex(Send_Buff[i]);}HID_Enter();}}}

STM32硬件SPI通过fm17550读取身份证UID,识别银行卡,识别TYPEA与TYPEB相关推荐

  1. STM32硬件SPI驱动OLED

    文章目录 一.OLED相关 1.OLED简介 2.0.96寸的OLED模块概述 3.模块引脚说明 4.汉字点阵编码原理 二.硬件SPI 1.SPI简介 2.SPI的引脚映射关系 三.SPI驱动的OLE ...

  2. STM32硬件SPI控制TM1638 按键数码管LED显示模块

    STM32硬件SPI控制TM1638按键数码管LED显示模块   从淘宝买来的,TM1638专门是控制LED的,LED组合起来就可以变成数码管,还有按键,这个我就没管了,不想管了,发这个帖子只是为了记 ...

  3. 嵌入式开发-STM32硬件SPI驱动TFT屏

    嵌入式开发-STM32硬件SPI驱动TFT屏 这次用到的TFT屏 CubeMX设置 代码编写 增加的内容 需要注意问题 代码下载 这次用到的TFT屏 现在的TFT屏幕已经很便宜了,65536色屏幕,2 ...

  4. 服务器身份证识别银行卡识别系统

    服务器身份证识别银行卡识别系统的网络结构 由Web Service和其相关网站接收客户端上传的需要识别的证件图片,客户端可以是PC的客户端程序,可以是PC的浏览器.手机或其他便携式设备.当Web Se ...

  5. 身份证识别,银行卡识别,驾驶证识别,行驶证识别,根据百度文字识别 api 封装,能快速识别身份证信息,银行卡信息,驾驶证信息,行驶证信息,使用非常方便

    OCR_identify 项目地址:wenchaosong/OCR_identify  简介:身份证识别,银行卡识别,驾驶证识别,行驶证识别,根据百度文字识别 api 封装,能快速识别身份证信息,银行 ...

  6. 基础篇010.2 STM32驱动RC522 RFID模块之二:STM32硬件SPI驱动RC522

    目录 1. 实验硬件及原理图 1.1 RFID硬件 1.2 硬件原理图 2. 单片机与RFID硬件模块分析 3. 利用STM32CubeMX创建MDK工程 3.1 STM32CubeMX工程创建 3. ...

  7. STM32硬件SPI使用与nSS的理解

    最近在调试硬件SPI,之前使用软件模拟方式,为了提高速度,选择该方式进行替换. 花了一些时间了解寄存器跟库函数直接调用,结果要么读取不出数据(陷入等待TXE,RXNE死循环)或读取数据为0xffff, ...

  8. stm32 硬件spi半双工三线的一些研究心得

    a7105可以使用四线spi,或者3线spi, 但是之前都是使用3线的软件模拟的三线spi的,所以不想改其它代码了,就想可以提高一个spi的读写速度,原来软件方式的读写速度,在48Mhz的03x下面, ...

  9. FM1722/02NL+STM32硬件SPI调试笔记

    1.介绍 FM17XX 系列通用非接触读卡机芯片是复旦微电子股份有限公司设计的,基于 ISO14443 标准的系 列通用非接触卡读卡机芯片,采用 0.6 微米 CMOS EEPROM 工艺. FM17 ...

最新文章

  1. 寻找下半年潜力币,压中一个,不负牛市
  2. sun cluster3.1
  3. 两个充电宝能互充电吗_国人鬼才设计,手掌大智能芯片充电宝能暖手、充电、补光镜三合一...
  4. jq在html中添加dom元素,使用jQuery添加DOM元素的最佳方法
  5. JAVA面试题 + 答案
  6. 可近似看作直线的是_高中物理题根之一:《匀变速直线运动的规律》
  7. [OpenGL] opengl常见问题汇总
  8. SQLServer DBA 三十问之我答(第7题)
  9. 搭建跨平台编程环境Code::Blocks+wxWidgets
  10. 电脑经常自动重启的原因
  11. Building a LAMP Server
  12. 传奇世界修改服务器时间,《传奇世界手游时长版》测试结束公告
  13. uni-app 登录功能(2)
  14. Rust异步之Future
  15. 解空间树搜索 及 最优解
  16. VS2022 Setup Project 打包
  17. Unbuntu16.04下cmake-gui安装
  18. AMD,在竞争中蜕变!
  19. 手机寸照如何修改底色
  20. igxe本地机器人怎么用_IGXE自售机器人第四批申请开启

热门文章

  1. 随机信号处理的一些归纳
  2. 项目 调度 服务器,(2)项目构建(Reactor部分)【Lars-基于C++负载均衡远程服务器调度系统教程】...
  3. (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  4. 6S大气校正模型源码
  5. GPU服务器使用教程
  6. SQL基础教程学习第六站:数据更新
  7. Power BI 可视化:直观了解分类百分比的饼图树视觉
  8. 万能乘法速算法大全_小学数学各年级知识点和重点、难点大全,复习必备提纲!...
  9. Android开发如何定制framework层服务
  10. 电脑怎么进入BIOS的方法集合