Страница 1 из 1

Подскажите по UART

Добавлено: 19 авг 2020, 17:28
Skull
Всем доброго времени суток! Подскажите глупому студенту, как организовать вывод в UART шестнадцатеричных команд в байтовом виде (как в MODBUS) ?
Передавать нужно около сотни команд вот такого вида: 0xD5 0x11 0x34 0x20 0x00 0xAA.
Вернее, я никак не соображу, как передавать байты пачкой.....

Подскажите по UART

Добавлено: 19 авг 2020, 18:57
RootShell

Код: Выделить всё

//WRITE
  byte i [] = {0xD5, 0x11, 0x34, 0x20, 0x00, 0xAA};
  Serial.write(i,sizeof(i));

Код: Выделить всё

//READ
  byte i[5];
  Serial.readBytes((byte*)i, sizeof(i));
  Serial.readBytes((char*)i, sizeof(i));

Подскажите по UART

Добавлено: 20 авг 2020, 10:29
Skull
Спасибо )) А подскажете как из этого сделать блок или как использовать в Flprog ?

Подскажите по UART

Добавлено: 20 авг 2020, 11:18
Dryundel
Skull писал(а): 20 авг 2020, 10:29 Спасибо )) А подскажете как из этого сделать блок или как использовать в Flprog ?
viewtopic.php?f=187&t=5627

Подскажите по UART

Добавлено: 20 авг 2020, 11:21
Skull
Спасибо )

Подскажите по UART

Добавлено: 10 дек 2020, 00:41
zviadovca29
Делаю пользовательский блок из этого скетча для последующей отправки данных в дисплей NEXTION.
Данные принимаю из самодельного круиз-контроля по UART.
Две недели не могу осилить, помогите плиз.

Код: Выделить всё

void setup() {

Serial.begin(9600);
}

void loop() {
char buff[25]; // буфер для чтения всего сообщения

Serial.readBytes(buff, 25); // читаем в буфер если есть что читать.

char spd[3];
memcpy(spd, &buff[1], 3);
Serial.print(" S_tec: ");
Serial.print(spd); // текущая скорость
Serial.print(" ");
memcpy(spd, &buff[4], 3);
Serial.print(" S_stb: ");
Serial.print(spd); // скорость стабилизации
Serial.print(" ");
memcpy(spd, &buff[7], 3);
Serial.print(" S_usr: ");
Serial.print(spd); // пользовательская скорость
Serial.println(" ");
}