用于mini2440与周立功非接触式ic卡模块的通信.doc
《用于mini2440与周立功非接触式ic卡模块的通信.doc》由会员分享,可在线阅读,更多相关《用于mini2440与周立功非接触式ic卡模块的通信.doc(13页珍藏版)》请在三一文库上搜索。
1、一个在linux下的串口程序例子用于mini2440与周立功非接触式ic卡模块的通信头文件#include #include #include #include #include #include #include #include #include #include #include class Cardreader : public QThreadQ_OBJECTpublic:Cardreader();int fd_port;int open_port(int comport);int set_opt(int fd,int nSpeed, int nBits, char nEvent, i
2、nt nStop);int initcardreader(int fd_port);unsigned int checkcard(int fd_port);unsigned int readcardid (int fd_port);int beep(int fd_port);void autorun(void);void sendmessage(int data);signals:void message(QString);protected:private:;cpp文件#include cardreader.hCardreader:Cardreader()int Cardreader:ope
3、n_port(int comport)/* 打开端口 成功返回文件描述符 失败返回0*/*open COM Port*/* comport=1 open COM1 comport=2 open COM2 comport=3 open COM3*/char *dev=/dev/ttySAC0,/dev/ttySAC1,/dev/ttySAC2;longvdisable;int fd;if (comport=1)fd = open( /dev/ttySAC0, O_RDWR|O_NOCTTY|O_NDELAY);if (0 = fd)emit message(Open port error 1);
4、return(0); else if(comport=2)fd = open( /dev/ttySAC1, O_RDWR|O_NOCTTY|O_NDELAY);if (0 = fd) emit message(Open port error 1);return(0);else if (comport=3)fd = open( /dev/ttySAC2, O_RDWR|O_NOCTTY|O_NDELAY);if (0 = fd) emit message(Open port error 1);return(0);if(fcntl(fd, F_SETFL, 0)1000)/等待超时则退出retur
5、n 0; while (readnum=0);if (buffer0!=0x06)return 0;/发送 0x00 0x52 0x00 0xad 0x03/usleep(40*1000);/等待40msbuffer0=0x00;buffer1=0x52;buffer2=0x00;buffer3=0xad;buffer4=0x03;write(fd_port,buffer,5);/等待0x20回应 否则出错退出usleep(40*1000);/等待50msmemset(buffer,0,sizeof(buffer);/buffer 缓冲区清0timer=0;doreadnum=read(fd_
6、port,buffer,sizeof(buffer);usleep(100);timer+;if (timer1500)/等待超时则退出return 0; while (readnum=0);if (buffer0!=0x20)return 0;/发送0x06buffer0=0x06;write(fd_port,buffer,1);/等待0x00 0x00 0x00 0xff 0x03回应 否则出错退出usleep(40*1000);/等待40msmemset(buffer,0,sizeof(buffer);/buffer 缓冲区清0timer=0;doreadnum=read(fd_port
7、,buffer,sizeof(buffer);usleep(100);timer+;if (timer1000)/等待超时则退出return 0; while (readnum=0);if (buffer0!=0x00)|(buffer1!=0x00)|(buffer2!=0x00)|(buffer3!=0xff)|(buffer4!=0x03)return 0;/发送开始符 0x20buffer0=0x20;write(fd_port,buffer,1);/等待0x06回应 否则出错退出usleep(40*1000);/等待40msmemset(buffer,0,sizeof(buffer)
8、;/buffer 缓冲区清0timer=0;doreadnum=read(fd_port,buffer,sizeof(buffer);usleep(100);timer+;if (timer1000)/等待超时则退出return 0; while (readnum=0);if (buffer0!=0x06)return 0;/发送 00 4c 08 00 00 ff ff ff ff ff ff bb 03buffer0=0x00;buffer1=0x4c;buffer2=0x08;buffer3=0x00;buffer4=0x00;buffer5=0xff;buffer6=0xff;buff
9、er7=0xff;buffer8=0xff;buffer9=0xff;buffer10=0xff;buffer11=0xbb;buffer12=0x03;write(fd_port,buffer,13);/等待0x20回应 否则出错退出usleep(40*1000);/等待40msmemset(buffer,0,sizeof(buffer);/buffer 缓冲区清0timer=0;doreadnum=read(fd_port,buffer,sizeof(buffer);usleep(100);timer+;if (timer1000)/等待超时则退出return 0; while (read
10、num=0);if (buffer0!=0x20)return 0;/发送0x06buffer0=0x06;write(fd_port,buffer,1);/等待0x00 0x00 0x00 0xff 0x03回应 否则出错退出usleep(40*1000);/等待40msmemset(buffer,0,sizeof(buffer);/buffer 缓冲区清0timer=0;doreadnum=read(fd_port,buffer,sizeof(buffer);usleep(100);timer+;if (timer1000)/等待超时则退出return 0; while (readnum=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用于 mini2440 立功 接触 ic 模块 通信
链接地址:https://www.31doc.com/p-3289430.html