Arduino中如何打印I/O端口状态?代码报错求助
问题解决:Arduino Serial.println 报错及I/O状态打印实现
错误原因
你遇到的报错no matching function for call to 'println(const char [14], int&)',是因为Serial.println没有同时接受字符串常量和整数的重载版本,你传递了两个参数给它,编译器找不到对应的函数实现,所以抛出错误。
可行解决方案
方案1:字符串拼接(使用String对象)
把整数状态转换为String类型后和前缀字符串拼接,再传入println:
int PIN25_state = digitalRead(25); // 读取PIN25状态 Serial.println("PIN25_state: " + String(PIN25_state));
方案2:分两次打印
先用Serial.print输出前缀字符串(不自动换行),再用Serial.println输出状态值(自动换行):
int PIN25_state = digitalRead(25); // 读取PIN25状态 Serial.print("PIN25_state: "); Serial.println(PIN25_state);
方案3:格式化输出(推荐)
使用Serial.printf支持格式化字符串,语法和C语言printf一致,写法更灵活:
int PIN25_state = digitalRead(25); // 读取PIN25状态 Serial.printf("PIN25_state: %d\n", PIN25_state);
其中%d是整数占位符,\n代表换行。
内容的提问来源于stack exchange,提问作者Sami
相关产品推荐
相关产品推荐

