qq_39610896 2024-01-11 21:38 采纳率: 56.3%
浏览 53
已结题

同时使用多个arduino uno的串口通信,通信失效

事情是这样的:我想用两块arduino uno板子通信,其中1号arduino uno向2号板子发送消息,两个板子之间通过软串口连接。2号板子上还定义了其他两个串口,一个是自带的硬串口用于和计算机通信,另一个是定义的软串口用于和语音模块asr01通信,但是在使用的过程中发现,好像利用这三个串口的过程中,定义串口的顺序不同,程序结果也不一样,如何解决呢?导致问题的原因是什么?

img

img


部分代码如上。

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-01-11 21:39
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    根据提供的代码和描述,我发现有可能是两个板子之间通过软串口连接的问题导致的通信失效。我有几个建议可以帮助您解决问题:

    1. 确保串口连接正确配置

    • 检查两个Arduino Uno板子之间的软串口连接是否正确。确保你正确连接了软串口引脚,如你的代码中的 SoftwareSerial duiduino(9,8)

    2. 检查串口通信的初始化顺序

    • 在两个板子上,确保你正确初始化和配置了每个串口。例如,在1号板子上,你初始化了硬串口 Serial.begin(9600),软串口 asr.begin(9600) 和软串口 duiduino.begin(4800)。确保这些初始化的顺序和参数设置都正确。

    3. 变量声明和作用域检查

    • 在你的代码中,有一些地方出现了错误信息 'c' was not declared in this scope,提示变量 c不存在。请确保您在使用变量 c之前正确声明和初始化。对于图1和图2中的代码,您应该在 void loop()函数之前声明变量 char c;

    4. 控制语句中的错误

    • 您在图1和图2的代码中,有一些控制语句(如 if(c=='1') )的括号使用错误。括号应该是{}而不是(). 确保你在控制语句中使用正确的括号。

    请您参考以上建议来解决问题,并确保您的代码中没有其他错误。如果问题仍然存在,请提供更详细的报错信息和完整的代码,以便我们能够更准确地帮助您解决问题。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 创建了问题 1月11日