Пустая серийная печать AdaFruit BTLE

Я работаю над прототипом с Arduino UNO и модулем AdaFruit Low Energy Blue Tooth

У меня есть массив uint32_t, который я пытаюсь отправить по Bluetooth на заданное устройство. Не думаю, что смогу отправить массив, поэтому попытался отправить его как строку, разделённую запятыми.

Я могу нормально вывести на печать каждый отдельный индекс этого массива, но при попытке создать строку, разделенную запятыми, выводится совершенно пустая строка. См. код и комментарии ниже.

Массив Ay:

uint32_t items[]= {0,3513728,7925384,0,0,0};

В моем кругу:

String output = "";

for(int i = 0; i<6;  i++){

  BTLEserial.print(items[i]); // Печатает, как и ожидалось
  output += getStringForUI32_T(items[i]);
  output+=",";

 }
 BTLEserial.print(output); // выводит ПУСТО

Я думаю, что это как-то связано с памятью, но я в полной растерянности. Пожалуйста, помогите!

, 👍1

Обсуждение

Работает ли это при печати на обычный последовательный монитор? BTLEserial.print может не принимать String в качестве входных данных и вместо этого просто выводить адрес указателя. Возможно, сначала придётся скопировать его в символьный буфер (toCharArray(but,len))., @geometrikal

У меня тоже не работает Serial.println... ведет себя примерно так же. Не могли бы вы показать мне, как сделать буфер выше? C - не мой самый сильный набор., @erik

Нет смысла объединять все во временную строку — просто отправьте каждую часть в отдельном вызове отправляющей функции., @Chris Stratton


1 ответ


1

Я бы, наверное, сделал это прямо так:

for(int i = 0; i<6;  i++) {
  BTLEserial.print(items[i]);
  BTLEserial.print(',');
}
BTLEserial.println();

Но с помощью строки, я думаю, это будет что-то вроде:

String output = "";

for(int i = 0; i<6;  i++) {
  output += getStringForUI32_T(items[i]);
  output+=",";
}
BTLEserial.println(output[0]);

Но поскольку кто-то другой добился этого, используя String в вашей теме на adafruit, возможно, это просто попытка пойти не по тому пути.

,

@ChrisStratton А как насчёт объекта String? Я не знал, что можно ссылаться на массив символов String с помощью []., @geometrikal