Arduino Uno接PLX-DAQ读Excel单元格时RFID接入导致取值异常问题
问题原因
Arduino Uno的默认Serial硬件串口同时复用两个功能:
- 连接D0(Rx)、D1(Tx)引脚,用于外接串口设备通信
- 连接板载USB转串口芯片,用于和电脑端的PLX-DAQ做数据传输
你将RFID模块的Tx引脚接到了D0(Uno的硬串口Rx脚),相当于两个发送端(USB转串口芯片、RFID模块Tx)同时挂载在同一个接收引脚上,哪怕没有触发刷卡操作,RFID模块的Tx引脚空闲电平、上电初始冗余输出、微弱杂波都会干扰PLX-DAQ从USB通道发送回来的1信号的正常接收。
你代码中Serial.readStringUntil(10)没有读到有效数据时,返回的空字符串调用toInt()转换结果就是0,和你观测到的现象完全吻合。
解决方案
- 优先方案:使用
SoftwareSerial软串口库,选择D0/D1之外的空闲数字引脚模拟串口,专门用来连接RFID模块,硬串口完全留给PLX-DAQ的USB通信,从根源避免引脚复用冲突。 - 替代方案:如果必须使用硬串口连接RFID,可以在D0和RFID Tx之间增加一个可控模拟开关,或者在setup阶段读取J4值前临时将RFID模块设为休眠/输出高阻状态,读完状态值后再恢复RFID的正常通信。
内容的提问来源于stack exchange,提问作者Saul
相关产品推荐
相关产品推荐

