全部
  • 全部
  • 解决方案
  • 技术问答
  • 视频中心
  • 知识分享
  • 技术资讯
  • SEED产品
400-048-1230
订阅
  • 首页
  • 解决方案
  • 技术问答
  • 视频中心
  • 知识分享
  • 技术资讯
  • SEED产品
带您创建意法半导体的第一个NFC Reader工程
来源:Arrow 发布:2024/03/13 浏览量:225

创建您的第一个NFC Reader工程

继上期带您初识意法半导体 NFC产品,本文我们将带您一起创建您的第一个NFC Reader工程。

 

准备工作

  • 参考硬件:本文所使用的硬件为NUCLEO-G070RB和X-NUCLEO-NFC08A1(ST25R3916B)
  • 开发环境:STM32CubeIDE v1.12.1 / STM32CubeMX v6.10.0
  • 参考代码:NFC Software Packs:X-CUBE-NFC6 v3.0.0

 

此外,第二代系列产品均包含一个集成的安全子系统和可充分利用的Secure Vault技术。Secure Vault提供领先的安全软件功能和物理不可克隆功能(PUF)硬件技术,以极大降低IoT安全漏洞和知识产权受损的风险。

 

ST25R3916B 驱动代码涉及到的 MCU 外设为 GPIO,SPI 和 EXTI,以及用于调试的UASRT和Button按键。ST官网下载对应开发板数据手册和原理图,其接口遵循 Arduino 接口定义,查看引脚分布和对应关系,制作对应关系表如下:

  

   
打开STM32CubeMX工具,选择MCU型号:STM32G070RBT6,并创建工程,并初始化时钟。
      
初始化SPI:配置 SPI 为全双工模式,软件 NSS,8Bit,MSB,CPOL=0,CPHA=1。调整 MCU分频以设置 SPI 时 钟,建议范围 4-8MHz,不可以超过 10MHz。
      
由于SPI1的默认PIN脚与我们所需的不一致,需要调整至PA5、PA6、PA7上。
      
ST25R3916B 软件参考代码默认使用软件 SPI 片选,与PB0相连,配置PB0为Output Push Pull模式,自定义User Label:SPI1_NSS方便记忆。
      
配置IRQ引脚:与PA0相连,将 PA0 配置为 External Interrupt Mode,上升沿中断模式。若 MCU 支持电平中断模式,选用高电平中断模式更佳,并在NVIC中使能中断。
      
在NVIC中使能外部触发中断。

      
添加Button按键配置和LED指示灯:
Button按键:低功耗模式切换按键,Button在NUCLEO-G070RE板上,与PC13相连将 PC13 配置为 External Interrupt Mode,上拉、上升沿中断模式,自定义User Label:Button方便记忆,实际应用中可根据需求选用。
LED指示灯:分别与PA1、PA4、PA8、PB1、PB11、PB12相连,分别配置为为Output Push Pull模式即可,仅用于调试用,实际应用中可根据需求选用。

    
使能USART,用于Log打印,USART2在NUCLEO-G070RE板上,通过板载ST-LINK虚拟串口引出。

   

添加NFC Software Packs:X-CUBE-NFC6,此处使用的X-CUBE-NFC6 v3.0.0版本,如未安装,可在如下步骤2时在线安装Packs。

   

此处仅演示:NFC08A1_PollingTagDetect,Default_Config模式下标签读取。

      
以上第7步完成后,将配置的接口添加进Packs,如下所示:
配置工程名,至此 MCU 底层驱动已经配置完成,保存并生成工程代码,通过STM32CubeIDE打开工程,并编译。

     
通过STM32CubeIDE打开工程,并编译,当前版本的软件会报两个类型错误。

 

  1. error: 'EXTI_HandleTypeDef' has no member named 'PendingCallback'; did you mean 'RisingCallback'?

解决办法:只需要将对应代码中的PendingCallback替换成RisingCallback即可,原因是STM32G070RE的 PA0不支持电平方式中断触发,需要改成上升沿触发,与我们之前步骤中配置的一致。

2. ../Middlewares/ST/rfal/Inc/rfal_analogConfig.h:29:10: fatal error: rfal_utils.h: No such file or directory 缺少rfal_utils.h文件。

解决办法:在ST官网上下载一份x-cube-nfc6完整工程,并将/Middlewares/ST/rfal/Inc/的所有文件复制替换到工程对应目录下,下载链接:https://www.st.com/zh/embedded-software/x-cube-nfc6.html

     
重新编译,可以编译通过。

    

给开发板上电,可以通过串口打印读卡信息。

 

相关阅读:

 

ST
请使用浏览器分享功能 请点击右上角,进行分享