我正在制作一个Arduino项目,我只是想知道为什么以下代码在向Serial发送字符串时会创建新行但是使用空文本。就好像+运算符使字符串为空。
String stringOne = "This is a string";
Serial.println(stringOne);
当放入循环时,Serial会重复打印"这是一个字符串"在新的行中,就像它应该的那样。
int number = 1234567890;
String stringOne = "This is a number. It is:";
String stringTwo = String(number);
String stringThree = stringOne + stringTwo;
Serial.println(stringThree);
当放置在循环中时,Serial会生成新行,但不会打印任何内容,就好像字符串为空。
如果我能得到任何帮助,我会非常感激。提前致谢
答案 0 :(得分:1)
原始问题存在的原因是因为你没有SRAM; stringThree
在内存映射的一个区域中创建,其中所有内容始终读为0,0表示底层char*
的结尾。尽可能多地将常量和文字推入闪存中。
它在新草图中无法正常工作的原因是因为AVR中的int
只有16位长,并且您正在尝试将32位数字填入其中;请尝试使用long
。