Arduino数据类型混乱。有字符串,需要const char吗?

时间:2015-06-10 10:07:05

标签: c arduino type-conversion

我正在和一个UNO合作,我正在使用带有软spi的maniacbug的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然后循环通过那?

1 个答案:

答案 0 :(得分: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));