c++转换为String最终停止工作
C++ Converting to String eventually stops working
下面的方法每秒调用4次,有一段时间它工作得很好,我得到以下输出:
++++++++++++++++
^
^
++++++++++++++++
然而,在几百个电话之后,线路
String str = String(tosend);
似乎不工作了,我得到输出
++++++++++++++++
^
++++++++++++++++
所以不管什么原因'str'没有值。当我输入这个时,如果我让应用程序运行足够长的时间,它就会再次开始工作,并且我得到了正确的输出。这里到底出了什么问题?我困惑。
void Transmit(char tosend)
{
String str = String(tosend);
const char *tosend_ready = str.c_str();
Serial.println("++++++++++++++++");
Serial.println(str);
Serial.println(tosend);
Serial.println("++++++++++++++++");
vw_send((uint8_t *)tosend_ready, strlen(tosend_ready));
vw_wait_tx();
delay(100);
}
我不知道String
是什么,但是这个实现可以让你摆脱它(看起来像嵌入式的,所以你不应该关心C-isms…对吧?)
void Transmit(char tosend)
{
const char buf[2] = { tosend, ' ' };
Serial.println("++++++++++++++++");
Serial.println(buf);
Serial.println(tosend);
Serial.println("++++++++++++++++");
vw_send(buf, 2);
vw_wait_tx();
delay(100);
}
相关文章:
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 自 Windows 10 20H1 以来,具有单独线程的多个窗口停止工作
- C++代码停止工作错误使用cout内部函数
- LoadImage 在 Windows 更新后停止工作
- C++程序工作,但 Windows 显示"程序.exe已停止工作"
- VS 代码 C/C++ 智能感知在更新后停止工作
- 不使用与左右停止工作命名空间 std 的简单比较
- 为什么通过定义另一个指针单元格,整个代码停止工作?
- 德拉吉诺 LG01-S 收到异常数据包并停止工作
- G++ 在生成文件中使用时停止工作
- 当循环在条件C++之前停止工作时
- GCC:--静态链接到pthread的整个存档配方在最近的GCC版本中停止工作
- 正则表达式代码无缘无故停止工作
- 我的代码在第 4 个选择后停止工作
- 读取二进制文件大小的短自上周以来停止工作
- C++ 已停止工作静态映射函数
- Vscode 自动格式化代码在运行几次后停止工作
- 程序 使用链表插入数据时停止工作
- 当我尝试输入时程序停止工作
- c++转换为String最终停止工作