完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我在为朋友的俱乐部编写 POS 系统时遇到了问题。
我用 Wemos D1 Mini 构建了 3 个 RFID 扫描器,每个扫描器都带有一个 RC522 读取器模块。他们读取卡的 NUID,将其转换为字符串并通过串行发送。这 3 台扫描仪连接到一台旧的 Windows XP 计算机。驱动程序已安装,我可以成功监控正在发送的串行数据。但是,只有在重置之后。 如果我连接 1 个扫描仪然后运行我的 (AutoIt) 脚本来获取数据,它会给我一个连接错误。(无法连接到端口 COM(X) 上的设备。当我按下 wemos d1 mini 上的重置按钮时,它就可以工作了。我不知道该怎么做这很烦人 这是扫描仪设备的代码,它在所有 3 个 wemos d1 minis 上都是相同的,除了设置循环中的 Serial.println(\"B\") 在第一个扫描仪上打印 A,在第二个扫描仪上打印 B,依此类推,以识别我的脚本中的扫描仪。D1 只是一个用于识别设备正在运行的 LED。 代码:全选#include #include #define SS_PIN D8 #define RST_PIN D3 MFRC522 rfid(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; void setup() { pinMode(D1, OUTPUT); digitalWrite(D1, LOW); Serial.begin(9600); SPI.begin(); rfid.PCD_Init(); rfid.PCD_SetAntennaGain(rfid.RxGain_max); Serial.println(\"B\"); digitalWrite(D1, HIGH); } void loop() { if ( ! rfid.PICC_IsNewCardPresent()) return; if ( ! rfid.PICC_ReadCardSerial()) return; char str[32] = \"\"; array_to_string(rfid.uid.uidByte, 4, str); Serial.println(str); rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); } void array_to_string(byte array[], unsigned int len, char buffer[]) { for (unsigned int i = 0; i < len; i++) { byte nib1 = (array >> 4) & 0x0F; byte nib2 = (array >> 0) & 0x0F; buffer[i*2+0] = nib1 < 0xA ? \'0\' + nib1 : \'A\' + nib1 - 0xA; buffer[i*2+1] = nib2 < 0xA ? \'0\' + nib2 : \'A\' + nib2 - 0xA; } buffer[len*2] = \'\\0\'; } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2334浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:26 , Processed in 0.588037 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
468
