Serial.print in arduino 不写变量
Serial.print in arduino not write variables
我正在用arduino开发,但是用串行编写时遇到问题
我的代码:
void send(String prefix, String cmd, String param) {
Serial.print("@");
Serial.print(prefix);
Serial.print(":");
Serial.print(cmd);
if (param.length() > 0) {
Serial.print("=");
Serial.print(param);
}
Serial.print(";");
}
void sendComand(String cmd, String param)
{
send("CMD", "xxx", "param");
}
结果:
@:;@:;@:;@:;@:;@:;@:;@:;@:;@:;
怎么了?
Serial.print 函数确实支持打印 String 类型的变量,因此您的代码应该可以工作。 当您尝试打印变量时,它没有打印任何内容,这一事实意味着您没有打印您认为的内容。您
确定您正在调用您认为正在调用的发送函数吗,是否只有一个(包括您加载的任何库中(。 打印您传递要发送的每个参数的长度,我怀疑它们都是零,否则它会崩溃,因为它们是空的。
如果这没有帮助,那么我建议您将这篇文章移至Arduino SO并发布一个最小的完整示例。
我发现了问题。我评论了cmd.reserve(64(;一切都奏效了。我输入了这段代码来尝试优化,但它工作不正常。
做另一个测试,我相信问题出在我的代码的另一部分,但会影响另一部分。在循环方法中,我实现了一个"看门狗">代码,以警告软件硬件是活的。但是当我在watchDogTimeHardware变量中输入一个新值时,看起来内存已损坏。
unsigned long watchDogTimeHardware = 0L;
void setup()
{
Serial.begin(9600);
cmd.reserve(64);
}
void loop()
{
if (millis() > watchDogTimeHardware) {
watchDogTimeHardware = millis() + 1000L; // HERE IS THE PROBLEM
sendComand(OUT_WATCH_DOG, "");
}
}
我不知道发生了什么
相关文章:
- Arduino无法编译名为SP:"Expected ')' before '(' token"的变量
- 键盘不起作用 - Arduino Uno - 与变量有关的多个错误
- Serial.print in arduino 不写变量
- 如何在Arduino的功能中提供软件变量
- 如何在Arduino中创建另一个类库的实例变量
- Arduino结构变量似乎在没有显式重新赋值的情况下被重新赋值
- 是否可以从类(Arduino)访问草图中的变量
- Arduino/C++全局变量与局部变量
- 在Arduino中使用字符串和int对变量进行Acessing/Adressing
- Arduino:使用按钮增加和减少变量
- C++ Arduino 如何在方法中初始化任何未初始化的全局变量
- Arduino-setup()中声明的变量不在函数范围内
- Arduino上的typedef结构:变量没有命名类型
- 如何在Arduino中从SD卡创建变量
- 了解 Arduino RTClib 中缺少变量的 c++ 函数
- 通过串行方式在Arduino和PC之间传递变量的最佳方式
- Arduino无法根据模拟输入变量点亮led
- Arduino变量用法
- Arduino -附加int值到字符串的末尾,用于连接变量
- 访问C中的类变量(Arduino Timezone库)