久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機+rc522關于寫密碼寫不進去,困擾了幾天,幫我看一下例程
[打印本頁]
作者:
莫小豪
時間:
2020-5-4 13:59
標題:
單片機+rc522關于寫密碼寫不進去,困擾了幾天,幫我看一下例程
#define ReadWriteArea 0x01
extern unsigned char UID[4];
extern int g_SPI_Fd;
unsigned char SetKey_read[16];
unsigned char DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
unsigned char ResetKey[6] = {0xAB, 0xCD, 0xEF, 0xFF, 0xFF, 0xFF};
unsigned char SetKey_write[16] = {0xAB, 0xCD, 0xEF, 0xFF, 0xFF, 0xFF,
0xFF, 0x07, 0x80, 0x69,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
unsigned char Default_write[16] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x07, 0x80, 0x69,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
主程序中寫卡部分代碼
void my_register(void)
{
while(1)
{
int i,j;
HandleConfigMenu('A');//讀卡
my_status = PcdSelect(UID);
PcdHalt();
//我是這里設置的休眠,不知道會不會對讀寫有影響
printf("Select:%x\n", my_status);
if(MI_OK != my_status) continue;
my_status = PcdAuthState(PICC_AUTHENT1A , ReadWriteArea, ResetKey, UID);//尋卡
if(MI_OK == my_status)
{
printf("The card has been registered!!!\n");
usleep(500000);
break;
}
else
{
printf("Check\n");
my_status = PcdWrite(ReadWriteArea, SetKey_write);
printf("PcdWrite: %x\n", my_status);
printf("WRITE ...\n");
if(MI_OK == my_status)
{
my_status = MI_ERR;
printf("Registering...\n");
buzzer_control(DEVICE_BUZZER,BUZZERON);
usleep(500000);
buzzer_control(DEVICE_BUZZER,BUZZEROFF);
printf("!!!!!!!!\n");
printf("\n");
printf("The card register successfully!\n");
printf("\n");
printf("!!!!!!!!\n");
break;
}
}
}
}
下面貼出來PcdWrite、PcdAuthState相關代碼,有懂的朋友幫我看一下是不是哪里參數設置錯了
char PcdWrite(unsigned char addr,unsigned char *pData)
{
char status;
unsigned int unLen;
unsigned char i,ucComMF522Buf[MAXRLEN];
ucComMF522Buf[0] = PICC_WRITE;
ucComMF522Buf[1] = addr;
CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);
status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);
if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))
//根據終端打印信息,是這里出錯
{ printf("1.\n");
status = MI_ERR; }
if (status == MI_OK)
{
for (i=0; i<16; i++)
{ ucComMF522Buf[ i] = *(pData+i); }
CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);
status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);
if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A))
{ printf("2.\n");
status = MI_ERR; }
}
return status;
}
char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr)
{
char status;
unsigned int unLen;
unsigned char i,ucComMF522Buf[MAXRLEN];
ucComMF522Buf[0] = auth_mode;
ucComMF522Buf[1] = addr;
for (i=0; i<6; i++)
{ ucComMF522Buf[i+2] = *(pKey+i); }
for (i=0; i<6; i++)
{ ucComMF522Buf[i+8] = *(pSnr+i); }
status = PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);
if ((status != MI_OK) || (!(ReadRawRC(Status2Reg) & 0x08)))
{ status = MI_ERR; }
return status;
}
void Auto_Reader(void)
{
int i = 0;
while(1)
{
if(PcdRequest(0x26,UID) == MI_OK)
{
if(PcdAnticoll(UID) == MI_OK)
{
printf("\n");
printf("\n");
printf("\n");
printf("ID:\t");
for(i=0; i<4; i++)
{
printf("%x", UID[ i]);
}
printf("\n");
printf("\n");
printf("\n");
}
break;
}
else
{
printf(".");
}
usleep(300000);
}
}
作者:
莫小豪
時間:
2020-5-4 14:00
我在第二頁po出了其他相關代碼~有大佬能幫看一下,看了很多歷程后沒轍了
作者:
lecturer
時間:
2020-5-12 01:03
莫小豪 發表于 2020-5-4 14:00
我在第二頁po出了其他相關代碼~有大佬能幫看一下,看了很多歷程后沒轍了
if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) //那就重點檢查這里
將判斷拆開
if (status != MI_OK)
printf("RC522與卡通信失敗");
if (unLen != 4)
printf("返回數據長度出錯");
if ((ucComMF522Buf[0] & 0x0F) != 0x0A)
printf("塊第一字節不為0A");
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产盗摄一区二区
|
日韩欧美在线播放
|
国产一级黄色大片
|
国产男女视频
|
国产成人三级在线观看
|
亚洲成人免费
|
午夜一区二区三区
|
国产农村妇女精品一二区
|
av三级在线观看
|
久久天天躁狠狠躁夜夜躁2014
|
国产又色又爽又黄又免费
|
狠狠插狠狠操
|
天天操夜
|
国产日韩欧美日韩大片
|
亚洲黄色影院
|
伊人操
|
国产精品久久久999 成人在线国产
|
国产视频一区在线观看
|
天天爱天天操
|
青青草免费在线
|
中文字幕免费观看视频
|
天天天操
|
美日韩一区二区
|
国产伦精品一区二区三区四区
|
欧美一区二区三区视频
|
免费av网址在线观看
|
国产精品福利一区
|
久久精品毛片
|
秋霞午夜鲁丝一区二区老狼
|
日韩一级免费视频
|
日本久久视频
|
日韩中文字幕免费
|
色啪视频
|
天天干夜夜骑
|
亚洲www
|
草少妇
|
日韩中文字幕精品
|
成人综合网站
|
欧美精产国品一二三区
|
日韩小视频在线观看
|
亚洲国产精品一区二区三区
|