【问题标题】:Strange output with serial奇怪的串行输出
【发布时间】:2026-01-21 19:40:01
【问题描述】:

我有一个带有屏蔽的 Arduino,它通过 RS-232/串行与电机控制器通信。在通讯过程中,当我收到电机控制器的响应时,出现随机字符/不规则响应。

命令和响应都是简单的 ASCII 字符串。

我的 PC 和 arduino 之间的串行通信没有问题,我的 PC 和电机控制器之间的串行连接也没有问题,但是这两者一起不想相处。谁能想到会出现这种情况的原因?

相同的波特率 (9600),标准设置:8 位,1 个停止位,所有设备均无奇偶校验。

在 Arduino 上,我使用 SoftwareSerial 与电机控制器和串行监视器通信以输入命令。

有什么想法吗?

【问题讨论】:

  • 什么电机控制器?添加您的代码和一些不良数据有助于确定真正的问题。

标签: arduino serial-port


【解决方案1】:

SoftwareSerial 很容易受到来自其他来源的中断的影响。如果引脚 8 和 9 可用,则应使用 AltSoftSerial。如果没有,并且电机控制器发送纯文本响应,您应该使用我在 github 上发布的库,NeoSWSerial

【讨论】:

  • 谢谢! SoftwareSerial 确实是问题所在。我正在使用一个 RS232 屏蔽,该屏蔽旨在使用 Arduino Uno 上可用的数字引脚。通过使用引线连接到 Arduino Mega 上的备用 RX 和 TX 引脚并利用硬件 UART,我消除了这些问题。