Пустая серийная печать 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); // выводит ПУСТО
Я думаю, что это как-то связано с памятью, но я в полной растерянности. Пожалуйста, помогите!
@erik, 👍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
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- avrdude ser_open() can't set com-state
- Как подключиться к Arduino с помощью WiFi?
- Mac OSX Yosemite не отображает последовательные порты для Uno R3
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
Работает ли это при печати на обычный последовательный монитор?
BTLEserial.printможет не приниматьStringв качестве входных данных и вместо этого просто выводить адрес указателя. Возможно, сначала придётся скопировать его в символьный буфер (toCharArray(but,len))., @geometrikalУ меня тоже не работает Serial.println... ведет себя примерно так же. Не могли бы вы показать мне, как сделать буфер выше? C - не мой самый сильный набор., @erik
Нет смысла объединять все во временную строку — просто отправьте каждую часть в отдельном вызове отправляющей функции., @Chris Stratton