色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

USB免驅IC讀卡器QT小程序開發

鄒振豪 ? 來源:jf_51178285 ? 2025-01-04 10:55 ? 次閱讀

經典USB免驅全協議IC卡讀寫器讀取FM1208CPU卡。

FM1208CPU卡是一款由上海復旦微電子股份有限公司(Fudan Microelectronics Group, FMG)研發的高端智能非接觸CPU卡芯片。以下是對該產品的詳細介紹:

一、技術特點
1.先進工藝:FM1208采用先進的超深亞微米EEPROM工藝技術制造,具有高性能和穩定性。
大容量存儲:該芯片擁有64K Byte EEPROM的存儲容量,可以支持多種應用,如公交結算、小額支付等金融行業應用,實現一卡多種功能。
2.高安全性:芯片內置硬件DES協處理器,支持Triple-DES加密,提供比普通卡片更高的安全性。同時,芯片和卡片操作系統(COS)的協同安全技術為CPU卡提供了雙重的安全保證,有效防止金融交易中的數據錯誤,保護消費者交易的私密性、安全性及個人利益。
3.廣泛兼容性:FM1208符合ISO14443 Type A標準和ISO/IEC 7816-5規范,可以兼容現有的非接觸邏輯加密卡,如市場上廣泛應用的S50等,方便在已有應用下的升級和擴展。


二、功能與應用
功能強大:FM1208不僅具有數據存儲功能,還具有命令處理、計算和數據加密等功能。其內置的卡片操作系統(COS)使得該芯片相當于一臺微型計算機,可以根據實際應用情況靈活改變系統,滿足客戶的不同需求。
應用領域廣泛:FM1208CPU卡廣泛應用于城市公交、一卡通、高速公路卡、小額消費卡、校園卡、金融支付電子錢包、身份認證等領域。其高安全性、大容量和廣泛兼容性使得該芯片在這些領域中具有顯著的優勢。


三、性能指標
通信協議:支持ISO 14443-A協議,工作頻率為13.56MHz。
數據傳輸速率:支持高達106Kbps的數據傳輸速率。
程序存儲器:32K x 8bit ROM。
數據存儲器:8K x 8bit EEPROM,滿足10萬次擦寫和10年數據保存指標。
內置RAM:256 x 8bit iRAM和384 x 8bit xRAM。
工作距離:不小于10CM。
識別時間:識別一張卡的時間約為3ms(包括復位應答和防沖突)。
EEPROM擦寫時間:約為2.4ms。
典型交易過程:小于350ms。


四、市場應用與反饋
FM1208CPU卡已在多個城市大面積推廣,如重慶的掌中行、合肥的一卡通等。特別是上海公共交通方面的試點,為非接觸CPU卡在長江三角洲乃至全國的公交領域的應用推廣起到了示范和推動作用。該產品的推出和應用,不僅提高了城市區域經濟合作水平,還實現了城際間的互聯互通,加強了城市間的聯系。

綜上所述,FM1208CPU卡憑借其先進的技術特點、廣泛的應用領域以及卓越的性能指標,在智能卡市場中占據了重要地位。

QT小程序UI界面:

wKgZPGd190WAc959AADXyqHejNw472.png

QT小程序mainWindow.cpp代碼:

static bool checkinput(QString inputstr){
    QString inputyes="0123456789abcdefABCDEF";
    for(int i=0;isetupUi(this);
 
    QPalette pa;
    pa.setColor(QPalette::WindowText,QColor(255, 0, 0));
    ui->label_7->setPalette(pa);
    ui->label_8->setPalette(pa);
    ui->label_9->setPalette(pa);
    ui->label_19->setPalette(pa);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
 
void MainWindow::on_pb_beep_clicked()
{
    if(!checkdllos()){return;}      //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;
    if (mypcdbeep != NULL){         //是否成功連接上 pcdbeep()函數
        status = mypcdbeep(30);
        if(status==0){
        }
        else
        {
            disperrinf(status);
        }
    } else{
        QMessageBox::critical(NULL, "提示", "函數‘pcdbeep’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_getdevnum_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char devicenumber[4];    //設備編號緩沖
    unsigned char status;             //函數返回狀態
    if (mypcdgetdevicenumber != NULL){         //是否成功連接上 pcdgetdevicenumber()函數
        status = mypcdgetdevicenumber(devicenumber);
        if(status==0){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", QString::asprintf("設備編號:%03d-%03d-%03d-%03d", devicenumber[0],devicenumber[1],devicenumber[2],devicenumber[3]));
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘pcdgetdevicenumber’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_request_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char mypiccserial[4];    //卡序列號
    unsigned char myparam[4];         //參數
    unsigned char myver[1];           //版本
    unsigned char mycode[1];          //廠商代碼(復旦為90)
    unsigned char status;             //函數返回狀態
 
    if (mycpurequest != NULL){        //是否成功連接上 cpurequest()函數
        status = mycpurequest(mypiccserial,myparam,myver,mycode);
        if(status==0  || status==52){
            mypcdbeep(30);
            QString uidstr=QString::asprintf("%02X%02X%02X%02X", mypiccserial[0],mypiccserial[1],mypiccserial[2],mypiccserial[3]);
            QString parstr=QString::asprintf("%02X%02X%02X%02X", myparam[0],myparam[1],myparam[2],myparam[3]);
            QString verstr=QString::asprintf("%02X", myver[0]);
            QString codestr=QString::asprintf("%02X", mycode[0]);
 
            ui->lineEdit_uid->setText(uidstr);
            QMessageBox::information(NULL, "提示", "卡號:"+uidstr+",參數:"+parstr+",版本號:"+verstr+",廠商代碼:"+codestr+" 的CPU卡已激活進入14443-4協議模式,可以繼續以下的功能操作!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpurequest’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_init_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char ctrlword;           //是否先清空卡
    unsigned char mylen[1];           //密鑰長度
    unsigned char keybuf[20];         //密鑰
    int keylen;
    int spacesize;                    //空間大小
 
    if(ui->checkBox_clear->isChecked()){
        ctrlword=1;
    }else{ctrlword=0;}
 
    QString writinf = ui->lineEdit_cardkey->text().trimmed();
    keylen=checkhexdata(writinf,keybuf);
    if(keylenlineEdit_cardkey->setFocus();
        return;
    }
 
    mylen[0]=keylen;
    spacesize=ui->spinBox_maxsize->value();
 
    if (mycpursinit != NULL){        //是否成功連接上 cpursinit()函數
        status = mycpursinit(ctrlword,keybuf,mylen,spacesize);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "CPU卡初始化成功!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursinit’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
void MainWindow::on_pb_addeasyfile_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char fileno;             //文件號
    unsigned char readkeylen[1];      //只讀密鑰長度
    unsigned char readkeybuf[20];     //只讀密鑰
    unsigned char rwkeylen[1];        //讀寫密鑰長度
    unsigned char rwkeybuf[20];       //讀寫密鑰
    int keylen;
    int spacesize;                    //空間大小
    QString keystr;
 
    fileno=ui->comboBox_addfile->currentIndex(); //新增加的文件號
 
    keystr = ui->lineEdit_readkey->text().trimmed();
    keylen=checkhexdata(keystr,readkeybuf);
    if(keylenlineEdit_readkey->setFocus();
        return;
    }
    readkeylen[0]=keylen;
 
    keystr = ui->lineEdit_rwkey->text().trimmed();
    keylen=checkhexdata(keystr,rwkeybuf);
    if(keylenlineEdit_rwkey->setFocus();
        return;
    }
    rwkeylen[0]=keylen;
 
    spacesize=ui->spinBox_2->value();
 
    if (mycpursfileadd_s != NULL){        //是否成功連接上 cpursfileadd_s()函數
        status = mycpursfileadd_s(fileno,readkeybuf,readkeylen,rwkeybuf,rwkeylen,spacesize);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "CPU卡創建易寫文件成功,需要使用易寫函數寫入文件數據!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursfileadd_s’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
 
void MainWindow::on_pb_addfile_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char fileno;             //文件號
    unsigned char readkeylen[1];      //只讀密鑰長度
    unsigned char readkeybuf[20];     //只讀密鑰
    unsigned char rwkeylen[1];        //讀寫密鑰長度
    unsigned char rwkeybuf[20];       //讀寫密鑰
    int keylen;
    int spacesize;                    //空間大小
    QString keystr;
 
    fileno=ui->comboBox_addfile->currentIndex();  //新增加的文件號
 
    keystr = ui->lineEdit_readkey->text().trimmed();
    keylen=checkhexdata(keystr,readkeybuf);
    if(keylenlineEdit_readkey->setFocus();
        return;
    }
    readkeylen[0]=keylen;
 
    keystr = ui->lineEdit_rwkey->text().trimmed();
    keylen=checkhexdata(keystr,rwkeybuf);
    if(keylenlineEdit_rwkey->setFocus();
        return;
    }
    rwkeylen[0]=keylen;
 
    spacesize=ui->spinBox_2->value();
 
    if (mycpursfileadd != NULL){        //是否成功連接上 cpursfileadd()函數
        status = mycpursfileadd(fileno,readkeybuf,readkeylen,rwkeybuf,rwkeylen,spacesize);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "CPU卡創建標準文件成功,需使用寫標準文件函數寫入數據!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursfileadd’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_changkey_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char fileno;             //文件號
    unsigned char ctrlword;           //控制字
    unsigned char oldkeylen[1];       //舊密鑰長度
    unsigned char oldkeybuf[20];      //舊密鑰
    unsigned char newkeylen[1];       //新密鑰長度
    unsigned char newkeybuf[20];      //新密鑰
    int keylen;
    QString keystr;
 
    fileno=ui->comboBox_changekeyfile->currentIndex();  //要更改密鑰的文件號
 
    if(ui->comboBox_changekey->currentIndex()==0){
        ctrlword=NEWKEYR;       //更改只讀密碼
    }else{ctrlword=NEWKEYWR;}   //更改讀寫密碼
 
    if(ui->comboBox_authkey->currentIndex()==0){
        ctrlword=ctrlword+OLDKEYR;      //用只讀密碼來認證
    }else{ctrlword=ctrlword+OLDKEYWR;}  //用讀寫密碼來認證
 
    keystr = ui->lineEdit_authkey->text().trimmed();
    keylen=checkhexdata(keystr,oldkeybuf);
    if(keylenlineEdit_authkey->setFocus();
        return;
    }
    oldkeylen[0]=keylen;
 
    keystr = ui->lineEdit_newkey->text().trimmed();
    keylen=checkhexdata(keystr,newkeybuf);
    if(keylenlineEdit_newkey->setFocus();
        return;
    }
    newkeylen[0]=keylen;
 
    if (mycpursfilekeychg != NULL){        //是否成功連接上 cpursfilekeychg()函數
        status = mycpursfilekeychg(fileno,ctrlword,oldkeybuf,oldkeylen,newkeybuf,newkeylen);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "修改文件密碼成功");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursfilekeychg’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_read_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char fileno;             //文件號
    unsigned char ctrlword;           //控制字
    unsigned char oldkeylen[1];       //舊密鑰長度
    unsigned char oldkeybuf[20];      //舊密鑰
    int staradd;                      //讀寫起始地址
    int datalen;                      //讀寫長度
    unsigned char rwbuf[8000];        //讀寫數據緩沖
    int keylen;
    QString keystr;
 
    fileno=ui->comboBox_rwfile->currentIndex();  //要讀寫的文件號
    staradd=ui->spinBox_rwbegin->value();        //讀寫起始地址
    datalen=ui->spinBox_rwlen->value();          //讀寫數據長度
    if(datalen255){
        QMessageBox::critical(NULL, "提示", "每次讀卡最多255字節,請輸入正確的讀卡長度!");
        ui->spinBox_rwlen->setFocus();
        return;
    }
 
    if(ui->comboBox_authrwkey->currentIndex()==0){
        ctrlword=OLDKEYR;      //用只讀密碼來認證
    }else{ctrlword=OLDKEYWR;}  //用讀寫密碼來認證
 
    keystr = ui->lineEdit_authkey2->text().trimmed();
    keylen=checkhexdata(keystr,oldkeybuf);
    if(keylenlineEdit_authkey2->setFocus();
        return;
    }
    oldkeylen[0]=keylen;
 
    if (mycpursfiledataread != NULL){        //是否成功連接上 cpursfiledataread()函數
        status = mycpursfiledataread(fileno,ctrlword,oldkeybuf,oldkeylen,staradd,rwbuf,datalen);
        if(status==0 ){
            mypcdbeep(30);
            QString datastr="";
            for(int i=0;iplainTextEdit->setPlainText(datastr);
 
            QMessageBox::information(NULL, "提示", "讀取數據成功!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursfiledataread’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
 
void MainWindow::on_pb_write_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char fileno;             //文件號
    unsigned char ctrlword;           //控制字
    unsigned char oldkeylen[1];       //舊密鑰長度
    unsigned char oldkeybuf[20];      //舊密鑰
    int staradd;                      //讀寫起始地址
    int datalen;                      //讀寫長度
    unsigned char rwbuf[8000];        //讀寫數據緩沖
    int keylen;
    QString keystr;
    QString datastr;
 
    keystr = ui->lineEdit_authkey2->text().trimmed();
    keylen=checkhexdata(keystr,oldkeybuf);
    if(keylenlineEdit_authkey2->setFocus();
        return;
    }
    oldkeylen[0]=keylen;
 
    datastr = ui->plainTextEdit->toPlainText().trimmed();
    datalen=checkhexdata(datastr,rwbuf);
    if(datalenplainTextEdit->setFocus();
        return;
    }
 
    fileno=ui->comboBox_rwfile->currentIndex();  //要讀寫的文件號
    staradd=ui->spinBox_rwbegin->value();        //讀寫起始地址
    datalen=ui->spinBox_rwlen->value();          //讀寫數據長度
    if(datalen247){
        QMessageBox::critical(NULL, "提示", "每次寫卡最多247字節,請輸入正確的寫卡長度!");
        ui->spinBox_rwlen->setFocus();
        return;
    }
 
    if(ui->comboBox_authrwkey->currentIndex()==0){
        ctrlword=OLDKEYR;      //用只讀密碼來認證
    }else{ctrlword=OLDKEYWR;}  //用讀寫密碼來認證
 
    if (mycpursfiledatawrite != NULL){        //是否成功連接上 cpursfiledatawrite()函數
        status = mycpursfiledatawrite(fileno,ctrlword,oldkeybuf,oldkeylen,staradd,rwbuf,datalen);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "寫入數據成功!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursfiledatawrite’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_easy_write_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char fileno;             //文件號
    unsigned char ctrlword;           //控制字
    unsigned char oldkeylen[1];       //舊密鑰長度
    unsigned char oldkeybuf[20];      //舊密鑰
    int staradd;                      //讀寫起始地址
    int datalen;                      //讀寫長度
    unsigned char rwbuf[8000];        //讀寫數據緩沖
    int keylen;
    QString keystr;
    QString datastr;
 
    keystr = ui->lineEdit_authkey2->text().trimmed();
    keylen=checkhexdata(keystr,oldkeybuf);
    if(keylenlineEdit_authkey2->setFocus();
        return;
    }
    oldkeylen[0]=keylen;
 
    datastr = ui->plainTextEdit->toPlainText().trimmed();
    datalen=checkhexdata(datastr,rwbuf);
    if(datalenplainTextEdit->setFocus();
        return;
    }
 
    fileno=ui->comboBox_rwfile->currentIndex();  //要讀寫的文件號
    staradd=ui->spinBox_rwbegin->value();        //讀寫起始地址
    datalen=ui->spinBox_rwlen->value();          //讀寫數據長度
 
    if(ui->comboBox_authrwkey->currentIndex()==0){
        ctrlword=OLDKEYR;      //用只讀密碼來認證
    }else{ctrlword=OLDKEYWR;}  //用讀寫密碼來認證
 
    if (mycpursfiledatawrite_s != NULL){        //是否成功連接上 cpursfiledatawrite_s()函數
        status = mycpursfiledatawrite_s(fileno,ctrlword,oldkeybuf,oldkeylen,staradd,rwbuf,datalen);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "寫入數據成功!");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpursfiledatawrite_s’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_clear_clicked()
{
    if(!checkdllos()){return;}      //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;
    if (mycpurscardclr != NULL){         //是否成功連接上 cpurscardclr()函數
        status = mycpurscardclr();
        if(status==0){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "cpu卡強制清空卡成功");
        }else{
            if(status==64){
                QMessageBox::information(NULL, "提示", "此卡為未經過我們cpursinit函數成功初始化的卡");
            }else{
                disperrinf(status);
            }
        }
    } else{
        QMessageBox::critical(NULL, "提示", "函數‘cpurscardclr’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_changecardkey_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char status;             //函數返回狀態
    unsigned char oldkeylen[1];       //舊密鑰長度
    unsigned char oldkeybuf[20];      //舊密鑰
    unsigned char newkeylen[1];       //新密鑰長度
    unsigned char newkeybuf[20];      //新密鑰
    int keylen;
    QString keystr;
 
    keystr = ui->lineEdit_cardoldkey->text().trimmed();
    keylen=checkhexdata(keystr,oldkeybuf);
    if(keylenlineEdit_cardoldkey->setFocus();
        return;
    }
    oldkeylen[0]=keylen;
 
    keystr = ui->lineEdit_cardnewkey->text().trimmed();
    keylen=checkhexdata(keystr,newkeybuf);
    if(keylenlineEdit_cardnewkey->setFocus();
        return;
    }
    newkeylen[0]=keylen;
 
    if (mycpurscardkeychg != NULL){        //是否成功連接上 cpurscardkeychg()函數
        status = mycpurscardkeychg(oldkeybuf,oldkeylen,newkeybuf,newkeylen);
        if(status==0 ){
            mypcdbeep(30);
            QMessageBox::information(NULL, "提示", "修改卡片密碼成功");
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpurscardkeychg’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 
 
void MainWindow::on_pb_request1_clicked()
{
    if(!checkdllos()){return;}        //判斷運行目錄內動態庫文件是否存在
 
    unsigned char mypiccserial[4];    //卡序列號
    unsigned char atqasakbuf[3];      //參數
    unsigned char status;             //函數返回狀態
 
    if (mypiccrequest1 != NULL){        //是否成功連接上 cpurequest()函數
        status = mypiccrequest1(mypiccserial,atqasakbuf);
        if(status==0  || status==52){
            mypcdbeep(30);
            QString uidstr=QString::asprintf("%02X%02X%02X%02X", mypiccserial[0],mypiccserial[1],mypiccserial[2],mypiccserial[3]);
            QString atqastr=QString::asprintf("%02X%02X", atqasakbuf[0],atqasakbuf[1]);
            QString sakstr=QString::asprintf("%02X", atqasakbuf[2]);
 
            ui->lineEdit_uid->setText(uidstr);
            QMessageBox::information(NULL, "提示", "卡號:"+uidstr+",ATQA:"+atqastr+",SAK:"+sakstr);
        }
        else
        {
            disperrinf(status);
        }
    }else{
        QMessageBox::critical(NULL, "提示", "函數‘cpurequest’未正確載入,請查詢DLL文件版本是否正確!");
    }
}
 

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IC卡
    +關注

    關注

    2

    文章

    168

    瀏覽量

    34148
  • 讀卡器
    +關注

    關注

    2

    文章

    417

    瀏覽量

    39391
  • EEPROM
    +關注

    關注

    9

    文章

    1022

    瀏覽量

    81676
  • 小程序
    +關注

    關注

    1

    文章

    238

    瀏覽量

    12161
收藏 人收藏

    評論

    相關推薦

    IC讀卡器

    `IC讀卡器型號:HBTZ---920本公司供應IC讀卡器,品牌河北泰澤,型號HBTZ---920。質量保證,歡迎咨詢洽談。`
    發表于 09-18 15:24

    關于LABVIEW讀取USB-RFID讀卡器卡號問題

    有沒有那位大神用LABVIEW程序讀取過USB-RFID刷卡的(讀取ID卡和IC卡2種讀卡器,每刷一次讀取里面的卡號數據)?。≈附滔?。
    發表于 12-23 23:35

    電腦相關的讀卡器

    讀卡器是從卡形存儲介質讀取數據的數據輸入設備。讀卡器可根據不同類型的卡分為接觸式和非接觸式IC讀卡器和遠程讀卡器。觸點
    發表于 09-16 16:51

    關于USB讀卡器的問題如何解決

    今天在測試USB讀卡器這個例程,我把程序下載到開發板后,電腦檢測可移動磁盤。但是我雙擊該移動磁盤,彈出“請將磁盤插入驅動G”請教原子大哥和
    發表于 06-17 04:20

    usb讀卡器萬能驅動下載

    usb讀卡器萬能驅動下載
    發表于 01-12 10:15 ?451次下載

    基于ARM的射頻IC讀卡器設計

    本文根據TCP/IP 網絡中讀卡器的訪問需求,提出基于ARM 的射頻IC讀卡器的設計方案,并給出了詳細的設計過程
    發表于 09-12 16:58 ?63次下載

    門禁系統非接觸式IC讀卡器的設計

    門禁系統非接觸式IC讀卡器的設計摘要: 非接觸式IC讀卡器是非接觸式IC 卡技術應用的關鍵之一。文中給出了門禁系統非接觸式
    發表于 05-30 17:03 ?435次下載

    支持可編程密集讀卡器模式的RFID讀卡器IC上市

    支持可編程密集讀卡器模式的RFID讀卡器IC上市 奧地利微電子公司(SWX 股票代碼:AMS)今天推出AS3992,擴展了旗下面向Gen 2應用的、市場領先的UHF RFID讀卡器
    發表于 12-16 09:33 ?1295次閱讀
    支持可編程密集<b class='flag-5'>讀卡器</b>模式的RFID<b class='flag-5'>讀卡器</b><b class='flag-5'>IC</b>上市

    讀卡器的接口類型

    讀卡器的接口類型              接口類型是指讀卡器與電腦主機之間的連接方式和類型。目前讀卡器都是采用
    發表于 01-09 15:06 ?4417次閱讀

    ID卡讀卡器程序

    用51單片機設計的125kHZ完整C語言ID卡讀卡器程序
    發表于 08-22 16:01 ?28次下載

    ID讀卡器程序

    ID讀卡器程序,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-05 14:48 ?21次下載

    基于STM32的USB讀卡器的設計

    基于STM32的USB讀卡器的設計
    發表于 09-25 11:11 ?29次下載
    基于STM32的<b class='flag-5'>USB</b><b class='flag-5'>讀卡器</b>的設計

    usb3.0和usb2.0讀卡器對比

    手里有個品勝的USB2.0讀卡器,電腦配置更新之后帶有3.0接口,所有買了個3.0的讀卡器,選來選去感覺還是螃蟹芯片好些,入了一個“川宇C396”,之前有個老的8G內存卡。還有個前年買了一個威剛
    發表于 05-15 16:09 ?2.5w次閱讀

    IC讀卡器輸出設置格式應用程序免費下載

    本文檔的主要內容詳細介紹的是IC讀卡器輸出設置格式應用程序免費下載。
    發表于 09-30 17:29 ?214次下載
    <b class='flag-5'>IC</b><b class='flag-5'>讀卡器</b>輸出設置格式應用<b class='flag-5'>程序</b>免費下載

    ID讀卡器TCP協議QT程序開發

    ID卡網絡讀卡器TCP協議QT程序開發。 TCP(傳輸控制協議,Transmission Control Protocol)是互聯網中最核心、最基本的協議之一。以下是對TCP協議的詳
    的頭像 發表于 12-31 10:19 ?87次閱讀
    ID<b class='flag-5'>讀卡器</b>TCP協議<b class='flag-5'>QT</b>小<b class='flag-5'>程序</b><b class='flag-5'>開發</b>
    主站蜘蛛池模板: 国产精品99久久久精品无码| 98久久无码一区人妻A片蜜| 99精品在线播放| 欧美日韩精品不卡在线观看| 麻豆精品传媒卡一卡二传媒短视频 | 中文字幕亚洲无线码一区| 美女被打开了屁股进去的视频| a级男女性高爱潮高清试看| 久久精品天天爽夜夜爽| 97久久精品人人槡人妻人| 九九99亚洲精品久久久久| 亚洲AV成人无码网天堂| 久久综合色视频| 成人免费公开视频| 亚洲人成77777在线视频| 国产欧美一区二区精品性色tv | 吉吉av电影| 亚洲乱码AV久久久久久久| 国产成人免费手机在线观看视频| 亚洲美女视频高清在线看| 久久人人玩人妻潮喷内射人人| 一本之道高清www在线观看| 免费在线亚洲视频| 97国产露脸精品国产麻豆| 色综合久久中文色婷婷| 久久免费精品一区二区| 东北真实仑乱| 我与恶魔的h生活ova| 久久伊人免费| 国产精品久久久久久久久免费下载| 伊人大香线蕉影院在线播放| 国产精品免费观看视频| 长篇高h肉爽文丝袜| 李丽莎与土豪50分钟在线观看| 自拍黄色片| 校园男男高h小黄文| 狠狠婷婷综合久久久久久| 亚洲三级视频| 三级黄色小视频| 国产在线高清视频无码不卡| 亚洲中文字幕欧美自拍一区|