C++ C++;转换为字符串最终会停止工作

C++ C++;转换为字符串最终会停止工作,c++,string,C++,String,下面的方法每秒调用4次,在一段时间内运行良好,我得到以下输出: ++++++++++++++++ ^ ^ ++++++++++++++++ 然而,在打了几百个电话之后,电话线断了 String str = String(tosend); 似乎停止了工作,我得到了输出 ++++++++++++++++ ^ ++++++++++++++++ 所以不管什么原因,“str”都没有价值。当我输入这个时,如果我让应用程序运行足够长的时间,它就会重新开始工作,并得到正确的输出。这里到底出了什么问题?我

下面的方法每秒调用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…对吧?)


那些奇怪的
String
对象是什么?C++只有<代码> STD::String .<代码> AsStReT(Stot=='^);<代码>并等待它失败。
void Transmit(char tosend)
{
    const char buf[2] = { tosend, '\0' };

    Serial.println("++++++++++++++++");
    Serial.println(buf);
    Serial.println(tosend);
    Serial.println("++++++++++++++++");
    vw_send(buf, 2);
    vw_wait_tx();
    delay(100);

}