Linux下读取RFID卡号(C串口编程)

由于项目需要用到RFID、GPRS、摄像头等模块所以便看了一下,整理了一下学习思路,本篇先是整理一下串口读取RFID卡号的程序思路,后面还会更其他的得意奋斗

RFID模块:

    本次采用的是125K的RFID读卡器和标签,很容易理解的,其实就是一张卡片里面存了一串数字(这个问题有点像你问一个艺术家洛必达法则是啥再见咦洛必达是啥),然后有个读卡器,当你把卡片放到读卡器上时,读卡器会将卡里面存的卡号读取出来,然后放到串口发送缓冲区,等待我们去读取,那么问题就是怎么读取。

串口读写:

    大家都知道。linux下面一切皆文件,设备也不例外,上面提到的串口就是个设备文件,linux设备文件一般存放在“/dev/”下,当你ls的时候会发现一大堆什么ttyS0、sda、video....现在笔记本串口设备文件一般都是ttyUSBx(x=0,1,2...)。既然是文件,那就能打开喽,不过它不是被“右键->打开”,而是被“系统调用open()”。当然不只是把它打开就完了,操作串口有一系列的系统调用。说到系统调用,其实就是系统底层给在上层编写程序的你提供的一些系统级函数。

    一些需要的头文件:

#include <unistd.h>       /*linux系统调用*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>        /*文件控制*/
#include <sys/stat.h>     /*文件状态*/
#include <sys/types.h>    /*定义系统类型,像size_t等*/
#include <errno.h>        /*出错码*/
#include <termios.h>      /*终端参数*/


   1.打开串口

    这里把open()这个系统调用封装成一个com_open()函数,可以方便判断是否打开成功并打印错误信息。

    参数*DEV是文件路径(上面提到的/dev/ttyUSBx),第二个参数告诉它是以什么方式打开,常见的有:

    O_RDONLY 只读

    O_WRONLY 只写

    O_RDWR 读写

    注:上面的三个不能同时出现,即不能这样写O_RDONLY | O_RDWR,像下面这些是可选的:

   O_NOCTTY 如果路径名指向终端设备,不要把这个设备用作控制终端。

   O_NONBLOCK 阻塞模式(详见配置串口处)

    open()返回值是int型fd文件描述符, 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个 非负整数。当打开一个现有文件或创建一个新文件时, 内核向进程返回一个文件描述符(0~255,不过有些是系统已经占用的),这个文件描述符用来告诉我们要对哪个文件进行操作。

int com_o
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值