ESP32S3基础8-NFC读卡-LR562读卡,PN532读卡

发布时间:2026/7/31 3:06:27

ESP32S3基础8-NFC读卡-LR562读卡,PN532读卡 1.NFC说明NFC是大家常用的卡片读卡设备也是五花八门下图就是常见的几款NFC读卡模块:2.代码涉及-NFC模块由于手边只有LR562,因此直接使用。下图是CK156:下图是PN532:下图是RC522下图是LR5623.NFC读卡模块-LR562代码完整版本ESP-IDF版本是 5.3.5;ESP32芯片型号是ESP32S3-WROOM1-N16R8main下的CMakeLists.txtcmake_minimum_required(VERSION3.16)include($ENV{IDF_PATH}/tools/cmake/project.cmake)project(nfc-lr562)main.c文件#includedriver/uart.h#includeesp_log.h#includefreertos/FreeRTOS.h#includefreertos/task.h#includestring.hstaticconstchar*TAGLR562;#defineTX_PIN17#defineRX_PIN18#defineUART_NUMUART_NUM_1#defineLR562_BAUD_RATE9600// // 全局变量储存卡号// charcard_id[32]{0};constchar*get_card_type(uint8_ttype){switch(type){case0x04:returnNTAG 213/215/216;case0x1D:returnNFC 标签(国产);case0x6D:returnM1 门禁卡;default:return未知卡;}}voiduart_init_lr562(void){uart_config_tuart_cfg{.baud_rateLR562_BAUD_RATE,.data_bitsUART_DATA_8_BITS,.parityUART_PARITY_DISABLE,.stop_bitsUART_STOP_BITS_1,.flow_ctrlUART_HW_FLOWCTRL_DISABLE,};uart_param_config(UART_NUM,uart_cfg);uart_set_pin(UART_NUM,TX_PIN,RX_PIN,UART_PIN_NO_CHANGE,UART_PIN_NO_CHANGE);uart_driver_install(UART_NUM,2048,2048,0,NULL,0);ESP_LOGI(TAG,✅ LR562 高速读卡已就绪);}voidlr562_task(void*arg){uart_init_lr562();uint8_tbuf[32];charlast_id[32]{0};while(1){// // 极速读取仅等待50ms// intlenuart_read_bytes(UART_NUM,buf,sizeof(buf)-1,pdMS_TO_TICKS(50));if(len0){// // 在这里打印原始 buf// ESP_LOGI(TAG,原始buf数据: );for(inti0;ilen;i){printf(%02X ,buf[i]);}printf(\n);}if(len13buf[0]0xFC){ESP_LOGI(TAG,模块版本号 0x%02X,buf[1]);uint8_ttypebuf[5];memset(card_id,0,sizeof(card_id));if(buf[9]0x00buf[10]0x00buf[11]0x00){sprintf(card_id,%02X%02X%02X%02X,buf[5],buf[6],buf[7],buf[8]);ESP_LOGI(TAG,卡号: %s,card_id);}else{sprintf(card_id,%02X%02X%02X%02X%02X%02X%02X,buf[5],buf[6],buf[7],buf[8],buf[9],buf[10],buf[11]);ESP_LOGI(TAG,卡号: %s,card_id);}// 防止重复输出if(strcmp(card_id,last_id)!0){strcpy(last_id,card_id);ESP_LOGI(TAG,);ESP_LOGI(TAG,卡号: %s,card_id);ESP_LOGI(TAG,类型: %s,get_card_type(type));ESP_LOGI(TAG,);}}// // 超短延时极速响应// vTaskDelay(20);}}voidapp_main(void){xTaskCreate(lr562_task,lr562_fast,8192,NULL,5,NULL);}

相关新闻