如何在arduino上用char数组实现函数

问题描述 投票:0回答:1

我正在使用ESP8266 as a wifi server绘制草图,我需要向客户端发送一个字符串,为此,我正在使用这段代码:

  char sbuf[] = "Hello world!\n\r";
  size_t len = sizeof(sbuf);
  for (i = 0; i < MAXCLIENTS; i++) {
  if (serverClients[i] && serverClients[i].connected()) {
     serverClients[i].write((char*) &sbuf, len);
     delay(1);
   }
 }

It works OK,客户端可以接收字符

但是现在我想在需要时调用make a function,这是功能代码:

void sendDataToClient( char sbuf[]) {
size_t len = sizeof(sbuf);
for (i = 0; i < MAXCLIENTS; i++) {
if (serverClients[i] && serverClients[i].connected()) {
  serverClients[i].write((char*) &sbuf, len);
  delay(1);
  }
 }
}

这就是我打电话给的function

char bufferMSGtoClient[] = "Hello world!\n\r";

sendDataToClient(bufferMSGtoClient)

但是它不起作用,我不理解length is 4的值,并且客户没有收到任何东西,有人可以告诉我我的error是什么?

arduino wifi esp8266
1个回答
0
投票

sizeof并没有您认为的那样。您得到4,因为那是指针的大小。请改用strlen。它会告诉您\ n多长时间。如果您也想要\ r,请添加两个。

© www.soinside.com 2019 - 2024. All rights reserved.