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