m0_58082715 2023-02-20 20:33 采纳率: 33.3%
浏览 36
已结题

Arduino串口问题

Arduino中,为什么把Serial.println();都改为Serial.print(); 就会报错no matching function for call to'HardwareSerial:print()"呢?

  • 写回答

3条回答 默认 最新

  • 答主 2023-02-20 21:43
    关注
    • 在 Arduino 中,Serial.println() 和 Serial.print() 都是串口通信中常用的输出函数,它们的参数可以是不同类型的数据,如字符串、整型、浮点型等。Serial.println() 是在输出数据后会自动换行,而 Serial.print() 则不会自动换行。
    • 在将所有 Serial.println() 都改为 Serial.print() 后,如果编译器报错 "no matching function for call to 'HardwareSerial::print()'",这通常是因为没有为 Serial.print() 提供正确的参数。
    • Serial.print() 函数至少需要一个参数,即要输出的数据。如果您不提供任何参数,编译器就会报错。如果您提供了参数,但参数类型与 Serial.print() 函数期望的类型不匹配,也会导致编译器报错。例如,如果您尝试将一个字符串传递给 Serial.print(),但是将字符串用双引号而不是单引号括起来,也会导致编译器报错。
    • 因此,请检查您更改后的代码中,是否为每个 Serial.print() 函数提供了正确的参数,并且参数类型与函数期望的类型匹配。如果问题仍然存在,您可以尝试使用 Serial.write() 函数进行调试。Serial.write() 函数可以将单个字节写入串口输出,如果它可以正常工作,则说明串口通信本身没有问题。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 菜鸟才能学的更多 2023-02-20 21:19
    关注

    在Arduino中,Serial.print()和Serial.println()都是用来向串口发送数据的函数,但是它们的参数不同。Serial.print()需要至少一个参数,而Serial.println()可以没有参数。因此,在将Serial.println()改为Serial.print()时,需要为该函数提供一个参数。

    报错"no matching function for call to'HardwareSerial:print()"是因为没有为Serial.print()提供参数。例如,如果你想向串口发送一个整数,应该使用Serial.print(num),而不是Serial.print()。

    如果你只想将一个空行发送到串口,可以使用Serial.println()或Serial.print("\n")。

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-20 22:03
    关注
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 创建了问题 2月20日

悬赏问题

  • ¥15 C++代码报错问题,c++20协程
  • ¥15 c++图Djikstra算法求最短路径
  • ¥15 Linux操作系统中的,管道通信问题
  • ¥15 ansible tower 卡住
  • ¥15 等间距平面螺旋天线方程式
  • ¥15 通过链接访问,显示514或不是私密连接
  • ¥100 系统自动弹窗,键盘一接上就会
  • ¥50 股票交易系统设计(sql语言)
  • ¥15 调制识别中这几个数据集的文献分别是什么?
  • ¥15 使用c语言对日志文件处理