я использую
Serial2.begin(9600, SERIAL_8N1, 15, 14,true);
Serial2.write(b,100);
Чтобы записать буфер в последовательный порт из esp32
Но по какой-то причине он не передает полный буфер? Вместо этого он передает по одному байту за раз.
У кого-нибудь есть совет о том, как я могу передать полный буфер вместо 1 байта за раз?
Пример кода:
#include <HardwareSerial.h>
void setup() {
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, 15, 14,true);
}
uint8_t buf[1000];
uint8_t* genBuffer(const char* txt, int* bufSZ)
{
int index = 0;
int i = 0;
buf[index++] = 0x00;
buf[index++] = 0x00;
buf[index++] = 0x00;
buf[index++] = 0x00;
buf[index++] = 0x00;
buf[index++] = 0x01;
buf[index++] = 0x46;
buf[index++] = 0x46;
buf[index++] = 0x30;
buf[index++] = 0x30;
buf[index++] = 0x02;
buf[index++] = 0x41;
buf[index++] = 0x41;
buf[index++] = 0x43;
buf[index++] = 0x32;
for (i = 0; txt[i]; i++) {
buf[index++] = txt[i];
}
*bufSZ = index;
return buf;
}
void loop()
{
int sz = 0;
uint8_t* b = genBuffer("test", &sz);
Serial.println(sz);
Serial2.write(b,sz);
for (int i = 0; i < sz; i++) {
Serial.print(" ");
Serial.print(b[i], HEX);
}
Serial.println();
delay(5000);
// put your main code here, to run repeatedly:
}