Как Serial.write(buf,len)
isdefined
Serial: serial port object. See the list of available serial ports for each board on the Serial main page.
val: a value to send as a single byte.
str: a string to send as a series of bytes.
buf: an array to send as a series of bytes.
len: the number of bytes to be sent from the array.
Вы должны определить, например,
char b[] = "Two hundred and fiftyfive character have to be in here tomake theexample work ....";
, тогда
Serial2.write(b,100);
будет работать, или вы определите фиксированную длину буфер
char b[256] = {'\0'};
и вы заполняете значения (преобразованные в строку) с itoa, utoa, ftoa
в него strcpy
и strcat
, чем вы должны убедиться, что в буфере для записи находится не менее 100 символов. Если b - это int или подобное, команда игнорирует ,100
и ведет себя как Serial.write(val)
-> значение для отправки в виде одного байта!
EDIT Ответ был дан до того, как OP опубликовал код но так как buf определен как глобальный массив, нет необходимости возвращать его из функции
Вы определили его как uint8
Если вы напечатаете ваш b в serial, вы увидите странные символы (вероятно, терминатор и некоторый контент памяти) ) Что делать проге? Как к
uint8_t* b
значение указателя записывается в последовательный порт, и я не думаю, что буфер этого указателя включен - так что вы ожидаете? См. Выше использование из документов.