先前就在 MBED 网站上看到这一个 MFRC522 的例程,这里我是将这个例程运行在刚拿到的 STM32F446RET6 Nucleo 开发板上看看运行的结果。测试所使用的 MFRC522 感应模块是网上很常见模块,类似的板子很多,虽然 PCB 样式不一定一样,但是大部份的板子都是使用 SPI 接口方式来控制 MFRC522 芯片,因此板子拉出的接头信号基本上都会相同的。
这个程序原作者是在 F401RE 板子上运行的,不过在 MBED 底下其他的 Nucleo 板在程序重新编译之后也应该都是可以正常运行的。Nucleo 板与 MFRC522 感应模块之间的连接方式如下:
原程序里面定义了一个 LedGreen 为 LED1,功能是当感应到卡片时板底的绿色 LED 会亮起
DigitalOut LedGreen(LED1);
但是程序执行时并没有看到这样的结果,原因是 Nucleo 板底的 LED1 是拉到 PA_5 ,而这一只管脚已经作为 SPI_CLK 功能使用,因此我们将 LedGreen 改定义在其他引脚:
DigitalOut LedGreen(PC_7);
如此一来在 PC_7 装上一颗 LED,当感应到卡片时这颗 LED 就会亮起。
先打开串口调试程序,程序编译后将程序下载到 Nucleo 板上运行,串口调试程序出现 starting...
放上卡片后串口调试程序显示卡片的 UID 与卡片种类:
原作者的网页在这里:
https://developer.mbed.org/users/kirchnet/code/RFID-RC522/wiki/Homepage
里面有库函式的相关说明。
对于这一个例程,MBED 网站上有人提出他测试的结果有发现部份的卡是读不到的!不过作者是表示他没有遇过这样的情况!然而这种情况我也碰到了,我手上的 RFID 钥匙扣卡与白卡就有几个是感应不到,而这几张卡在其他的读写器是可以正常读取的,这个问题我目前还在解决中。
工程文件:
F446_RFID_zip_nucleo_f446re.zip
(964.73 KB)
|