当前位置:   article > 正文

FlexLua 低代码单片机零基础实现 125K ID 卡读取 ID 号_flexlua sd

flexlua sd

125K ID 卡读取 ID 号

本文章参考 FlexLua 官网 ,基于 FlexLua 脱离复杂单片机C开发正逐渐成为一种快速高效的 IoT 硬件开发方式。让小白即使不懂单片机开发也可很容易用FlexLua零门槛开发各种 IoT 硬件。

一、ID卡基本概念介绍

ID卡又称射频ID卡,工作频率在125KHz。现在市场采用的多是一种无源、唯一序列号的ID卡片,制造厂家在产品出厂前已将此序列号固化,不可更改。 目前主流的ID卡为EM4100系列以及与其兼容的卡。

每个ID卡内部存储有5个字节的序列号,其中一个字节存储VID号,剩下四个字节存储ID号,我们平时在ID卡或钥匙扣上看到的那串数字就是用这四个字节的ID号的十进制形式标识出来的。下图为EM4100系列卡的内部存储按位(bit)方式展示出来的结构图:

e56690896fbb10881646d7c406ba8213.jpeg

二、实现功能描述

本例要实现的功能为Core控制ID卡读卡模块不停的搜寻周围的ID卡,当有效的ID卡靠近之后,即可检测出其VID号和ID卡号,最后将VID和ID卡号以十进制的方式在电脑串口调试终端上输出。

三、接线图

d259016d058d164cc0a6341884096585.jpeg

四、材料清单

  • 125K ID卡读卡模块

db082c9903a8b7f120a4fb55cb03f5bc.jpeg

五、完整代码

--配置USB以虚拟串口模式工作,波特率115200,这样print()函数的内容就会打印到电脑串口终端上面
LIB_UsbConfig("CDC")
--设置ID卡读卡器模块占用TX0和RX0引脚
LIB_IdCardReaderConfig("UART0")
--开始大循环
while(GC(1) == true)
do
--查询是否读到ID卡
id_found,vid,id = LIB_IdCardReaderGetContent()
if id_found == 1 then
--将读取到的vid和id号以十进制形式打印输出
print(string.format("VID:%03d ID:%010d\r\n", vid, id))
end
end

如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

六、代码运行结果

在电脑端运行的调试助手上,我们可以看到如下打印输出信息:

2ed3694b015fab567829346a497ebd2f.jpeg

这里前后用了三个ID卡进行打卡操作,三个ID卡的卡号如下图:

497f0f7efbb79f99ae4e34984a706eb3.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/983711
推荐阅读
相关标签
  

闽ICP备14008679号