【问题标题】:Arduino Uno serial monitor printing garbageArduino Uno 串口监视器打印垃圾
【发布时间】:2018-11-24 11:03:32
【问题描述】:

我正在将 Arduino Uno 和 GSM sim800l 用于一个项目,看起来有些问题,我不知道它是什么。这是我的代码:

#include <AltSoftSerial.h>

AltSoftSerial altSerial;

void setup() {
  Serial.begin(19200);
  Serial.println("AltSoftSerial Test Begin");
  altSerial.begin(19200);
  altSerial.println("Hello World");
}

void loop() {
  char c;

  altSerial.print("altSerial is working.");
  if (Serial.available()) {
    c = Serial.read();
    altSerial.print(c);
  }
  if (altSerial.available()) {
    c = altSerial.read();
    Serial.print(c);
  }
}

它的输出是这样的:

AltSoftSerial Test Begin (linebreak)
 Hello World  (linebreak)
ltSerial is ok⸮⸮M⸮ɥ⸮⸮⸮is okalt //insert long random garbage here

我尝试更改代码和串行监视器的波特率以使其保持匹配,但它不起作用,我尝试将其降低到 300 并尝试提高到 19200。
任何想法都会有所帮助。我也尝试了工具-> 修复编码并重新加载,但它仍然没有解决问题。这是我第一次使用这种类型的硬件,所以请多多包涵。我的目标是用它来发送 SMS 消息,但现在我正在尝试用它做一个较小的任务来尝试更好地理解它。

顺便说一句,我使用的 Arduino IDE 是 1.8.7

【问题讨论】:

  • 您是否将串行监视器中的波特率设置为 19200 波特?
  • 是的,当我更改源代码中的波特率时,我也会更改 arduino 串行监视器中的波特率。我确保它们始终匹配。
  • 如何将两个输出都发送到一个串行监视器?

标签: arduino serial-port arduino-uno gsm baud-rate


【解决方案1】:

我知道这篇文章已经过时了,但我也是,即使在过去的 40 年里我没有遇到所有可能的 COM 端口问题,我可以肯定地说我遇到过几十个。对我来说,它是一棵解决问题的树,而它的价值在于它……

首先,你没有说你的系统是什么,你应该总是从那里开始。我将假设是 Windows 10,但如果实现方式不同,基本思想是相同的。

  1. 插入你的arduino。您已经说过您的串行监视器设置为 19200,但请确保您确定,因为这通常是问题所在。
  2. 如果您确定 #1,请打开控制面板 > 设备管理器 > 端口
  3. 如果您在列表中没有看到“端口”,那么您的计算机没有看到 arduino。这可能是任何东西,从坏的 arduino 到坏的电缆,再到 PC 上坏的 USB 端口。尝试一次将所有这些都切换出来,看看是否可以让任何东西快速与 com 端口通信。由于您在串行监视器中得到了一些东西,这不会是您的特殊问题。
  4. 单击“端口”将其展开,并确认您看到列出的 Arduino。右键单击 Arduino,禁用并再次启用它。看看这是否能解决波特率问题。
  5. 查看 Arduino 属性
  6. 是否表明您的设备工作正常?如果不是,请查看事件,您将看到错误描述。修复它所说的任何错误。如果是,请继续
  7. 端口设置可能是 9200、8、无、1、无。即使您在串口监视器窗口中的波特率是 19200,您仍然可能会在设备管理器中看到 9200,不用担心。感觉不对,但很正常。微软似乎喜欢在这里保留 9600,即使我对这个端口所做的最后一件事是不同的。上面列出的数据位和其他设置是另一回事。
  8. 接下来,点击高级
  9. 您的 Arduino 分配的端口号出现了吗?它旁边是否显示“正在使用”?如果是这样,这是你的问题。我知道。奇怪吧?相信我,如果它显示“正在使用”,这意味着微软内部的某些东西正在使用该端口,但它不是您的 Arduino。 Power shell 可以帮助您解决问题,但这是另一回事,但现在最好的办法是重新安装您的驱动程序。
  10. 单击驱动程序选项卡,并确认您的驱动程序提供商是 Arduino LLC。我从来没有见过不是这样的,但如果不是,我会尝试找出原因。
  11. 继续更新驱动程序并重新启动您的计算机,即使系统没有提示您重新启动,也要这样做。
  12. 没有修复它?在驱动程序选项卡中,禁用设备,然后重新启用它。这也可能解决问题。
  13. 没有修复它?暂时不要卸载驱动程序。
  14. 点击详情。你看到阿杜诺了吗?
  15. 查看“事件”选项卡。如果您看到错误,请修复它。
  16. 仍然无法正常工作?卸载串行驱动程序,然后重新安装。
  17. 还是没有 19200?如果你有垃圾,你的 rx 上的时间与 Arduino tx 不同步。您现在需要一台逻辑分析仪,这里无法介绍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-19
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多