【问题标题】:Arduino data type confusion. Have string, need const char?Arduino 数据类型混淆。有字符串,需要 const char 吗?
【发布时间】:2015-06-10 10:07:05
【问题描述】:

我正在使用 UNO,我正在使用 maniacbug 的带有软 spi 的 RF24 库和他的 rf24network 库。 https://github.com/maniacbug/RF24Network

我想做的只是发送数据,但我遇到了错误的数据类型。

{
last_sent = now;

printf("Sending...\r\n");
const char* hello = "Hello, world!";
RF24NetworkHeader header(/*to node*/ other_node);
bool ok = network.write(header,hello,strlen(hello));
if (ok)
  printf("\tok.\r\n");
else
{
  printf("\tfailed.\r\n");
  delay(250); // extra delay on fail to keep light on longer
}
}

如果我把它改成

bool ok = network.write(header,myString,strlen(myString));

我收到数据类型错误。那么如何让我的字符串适合这个结构。我的想法是到一个 myString.toCharArray 然后也许循环通过它?

【问题讨论】:

  • 什么是myString,它是如何声明的??
  • @TheEditor - 你应该只在调用network.write时使用String类的c_str()方法,即network.write(header, myString.c_str(), myString.length());

标签: c arduino type-conversion


【解决方案1】:

先将String转成char数组:

size_t len = myString.length();
char buf[len+1]; // +1 for the trailing zero terminator
myString.toCharArray(buf, len);

然后你就可以通过buf:

bool ok = network.write(header,buf,strlen(buf));

【讨论】:

    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    相关资源
    最近更新 更多