8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

最近需要在树莓派上使用使用NFC读取mifare classic卡中的信息,在X宝购买了一块PN532芯片的NFC读卡器,然后使用libnfc提供的接口进行开发,本文介绍一下libnfc的基本使用方法。

PN532芯片介绍PN532是一个高度集成的NFC读写芯片,它包含80C51微控制器内核,集成了13.56MHz下的各种主动/被动式非接触通信方法和协议。

PN532支持三种与主机之间的通信接口(可能还支持USB,不过我这块PN532板子上没有USB接口):SPI

I2C

UART

PN532传输模块支持6种不同的工作模式:读写器模式,支持ISO/IEC 14443A / MIFARE®机制

读写器模式,支持 FeliCa机制

读写器模式,支持ISO/IEC 14443B机制

卡操作模式,支持ISO 14443A / MIFARE®机制

卡操作模式,FeliCa机制

ISO/IEC18092,ECM340点对点

本文中使用SPI与Raspberry Pi3之间进行通信,接线图就不放了,SPI接口一共就那么几根线。其实使用libnfc进行开发的话,使用什么接口都一样,libnfc会处理底层的通信细节,让开发者专注于PN532于芯片卡之间的通信过程。下文将讲述libnfc的配置方法。

libnfc介绍libnfc是GNU公共许可正下发布的第一个免费的底层的NFC SDK和编程API。它对任何人都是完全免费和公开的。这个列表给出了目前已经支持的功能。libnfc支持所有的主流操作系统,包括GNU/Linux、Mac OS X和windows。其编译工作应该在兼容POSIX的系统中进行。libnfc库支持多种NFC硬件,如dongles、flat 和 OEM设备等。libnfc当前支持ISO/IEC 14443协议A、B,Felica、Jewel/Topaz标签和发起者和接收者的点对点数据交换。

在libnfc支持的硬件列表中发现,其对PN532的各种接口都提供了很好的支持,So,放心的使用libnfc吧!(说的好像还有别的库可以用一样……)

目前libnfc的版本停留在1.7.1,可以从GitHub上得到它的源码,该网页有libnfc的官方文档。

libnfc安装与配置

开发环境为树莓派3,系统是Raspbian。安装libnfc的依赖库1sudo apt-get install libusb-dev libpcsclite-dev

安装libnfc

这里有两种安装方法,直接使用apt安装和源码编译安装。apt安装1sudo apt-get install libnfc-dev libnfc-bin

其中dev包包含libnfc的头文件和链接库文件,bin包包含了一些预编译的二进制工具(其实就是源码文件夹example里面的东西)。

源码安装

其实源码安装也很简单粗暴,在Raspbian上也没有遇到什么莫名其妙的问题。

首先安装CMake,如果已经安装了请忽略这一步:1sudo apt-get install cmake

然后cd到libnfc的源码目录中,建立一个build文件夹,在build文件夹中进行编译安装:1

2

3

4

5

6mkdir build

cd build

cmake ..

make

sudo make install

sudo ldconfig

至此libnfc安装完成。

配置libnfc

libnfc安装完成后,需要编辑配置文件/etc/nfc/libnfc.conf,使其能够找到PN532设备,如果系统中没有这个文件,创建它,然后在文件中添加以下内容:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20# Allow device auto-detection (default: true)

# Note: if this auto-detection is disabled, user has to set manually a device

# configuration using file or environment variable

allow_autoscan = true

# Allow intrusive auto-detection (default: false)

# Warning: intrusive auto-detection can seriously disturb other devices

# This option is not recommended, user should prefer to add manually his device.

allow_intrusive_scan = false

# Set log level (default: error)

# Valid log levels are (in order of verbosity): 0 (none), 1 (error), 2 (info), 3 (debug)

# Note: if you compiled with --enable-debug option, the default log level is "debug"

log_level = 1

# Manually set default device (no default)

# To set a default device, you must set both name and connstring for your device

# Note: if autoscan is enabled, default device will be the first device available in device list.

device.name = "PN532"

device.connstring = "pn532_spi:/dev/spidev0.0"

如果你使用i2c进行通信,将最后一行改为:1device.connstring = "pn532_i2c:/dev/i2c-1"

使用串口同理,修改最后一行的设备节点为你的串口设备。

配置完成后,使用nfc-list查看是否配置成功,如果你是使用apt安装的libnfc-bin,直接在终端中输入nfc-list即可;如果使用源码安装libnfc,这个工具在libnfc源码文件夹中的build/utils文件夹中。

运行nfc-list后如果看到如下输出,表示libnfc已经配置完成:

一般情况下不会出现配置失败的情况,如果配置失败,即未能成功打开PN532设备,请检查:树莓派的对应接口是否已经配置,如SPI、I2C等;接线是否正确;PN532设备能否正常工作等。

待续

树莓派linux读卡器,在树莓派上使用 PN532 NFC读卡器[0]相关推荐

  1. 树莓派linux能干什么,树莓派是什么?能干什么?

    一.什么是树莓派? 树莓派是由树莓派基金会发布的卡片式电脑,起初的目的是为了让更多的孩子们可以学习计算机编程,但是发布以后受到了广大计算机爱好者的喜爱 树莓派被称为卡片式电脑,顾名思义它可以安装操作系 ...

  2. ft4232树莓派linux扩展串口,树莓派Linux串口编程实现自发自收

    串口是计算机上一种非常通用设备通信的协议,常用PC机上包含的是RS232规格的串口,具有连接线少,通讯简单,得到广泛的使用. Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串 ...

  3. 树莓派,linux,系统连接不上隐藏WiFi 的办法

    1 正确配置 2 信道问题 正确配置 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 一行不落 ,添加以下内容 network={ssid=&quo ...

  4. 树莓派linux共享目录,树莓派局域网文件共享

    树莓派当中的文件,很多时候希望文件能在局域网内共享,可以通过 Samba 来实现这一目的. 安装 Samba samba 的安装很简单,命令行执行: sudo apt-get install samb ...

  5. 树莓派linux 容量不足,树莓派内存不足,使用zram来压缩数据增加内存

    内存永远是紧俏的资源,尤其是对于老式的树莓派来说,这篇文章详细记录了如何在Raspberry Pi上使用zram来压缩数据,用时间换空间增加内存. zram是一个Linux内核模块,被设计用来在RAM ...

  6. 树莓派linux桌面分辨率,树莓派安装KALI Linux屏幕分辨率问题

    树莓派安装KALI Linux屏幕分辨率问题 在树莓派中安装Kali系统,用 HDMI线连显示器,有黑边,无法全屏(1920×1080分辨率)显示. 将树莓派的tf卡插入电脑或将tf卡第一个分区在ka ...

  7. 树莓派linux网络编程,树莓派(Raspberry Pi)接太阳板和移动电源

    正在考虑给树莓派(Raspberry Pi)接上太阳能电池板, 这样就能把这玩意随意扔到一个有太阳的地方就可以了7X24小时待机了. 初步设想是,电池板+移动电源来给树莓派和无线网卡24小时供电. 首 ...

  8. 树莓派 linux 当服务器,将树莓派打造成音乐播放服务器

    几个月前,我发布了一篇文章<我对探寻终极音乐播放器的探寻>(My Quest to Build the Ultimate Music Player),在那篇文章里面描述了我对一款开源的音乐 ...

  9. 树莓派linux i2c通信,树莓派与i2c设备的通信

    最近搞树莓派,这里对学习过程中遇到的问题加以记录,感谢网上各位大神们的贡献: 首先,需要开启I2C,这里,我使用的是树莓派B+,开启方法比较简单,参考:http://www.embed-net.com ...

最新文章

  1. 女生可以学习Web前端吗?
  2. Hinton等大牛要来中国授课,首个AI人才国际培养计划在北大启动
  3. 应用心理学跨考计算机难不难,跨专业心理学考研难不难 主要学什么
  4. harmonyos 2.0怎么升级,HarmonyOS 2.0正式发布 分布式能力获得全面升级
  5. NOIP2001-普及组复赛-第一题-数的计算
  6. 第十周项目1-程序填空与阅读(一)
  7. Linux 终端(TTY)
  8. 自然语言处理实践Task6
  9. python计算圆锥体积和表面积_圆锥体积公式和表面积
  10. Springboot中temlates和static
  11. SQL join关联三个表或多个表
  12. cf 1487C - Minimum Ties
  13. 启动定时器t0的工作指令是_80c51单片机定时器t0工作于方式1定时时间1ms当晶振为6mhz时求计数初值为多少...
  14. 百度apistore第三方登陆使用说明
  15. ESXI提示 ramdisk“tmp”已满的解决方案
  16. 队列实现杨辉三角(附详细图解)
  17. 以太网无法连接到internet的解决方法
  18. idea插件translation插件 提示:翻译失败: 未知错误
  19. java基础技能清单
  20. 在itext2.1.4中的pdfPcell没有行合并(setRowspan),只有列合并的处理方法

热门文章

  1. mongodb查询错误:listDatabases failed NotMasterNoSlaveOk
  2. 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.OLE.Interop.IServiceProvider”。
  3. 完善2020淘宝618赛车活动脚本
  4. Element-UI框架对话框报错visible.sync
  5. 攻防世界第一站misc篇
  6. 一款手机App的配色方案如何建立美观度?
  7. 你感觉到疲倦了吗?释放压力的10个方法
  8. NFS And Autofs
  9. python哪些是可变对象_Python中的可变对象和不可变对象
  10. Partion方法的应用