Пытаюсь реализовать простую передачу данных по RS485 при помощи библиотеки от Эдуарда.
Реализую минимальный функционал:
Есть некий массив с числами int. В перспективе он будет заполняться динамически, но пока пробую использовать заранее объявленный -
int myArray[6] = {27, 38, 72, 91, 16, 54};
Пока остальной функционал опустим, как и ответ slave'a, пытаюсь просто добиться передачи. Для приема "на том конце" использую программу QModBus.е
На данный момент большее, чего мне удалось добиться - числа отправляются, но в теле пакета разделены "00", т.е. блок даты в пакете выглядит так примерно: 18 00 26 00 48 00 5B 00 10 00 36 00 - так показывает QModBus. К слову, переодически зависает, просто "вылетает" и вообще софтина на мой взгляд не шибко стабильна.
Теперь мой код, который пытается выполнить поставленную выше задачу (код отладочный и кривой, прошу отнестись с пониманием):
Код: Выделить всё
#include <TimerOne.h>
#include <Tiny_ModBusRTU_Master.h>
volatile Tiny_ModBusRTU_Master master(8, 30, 13);
int regTable[6] = {27, 38, 72, 91, 16, 54};
void loop() {
master.writeMultiple(2, regTable, 0, 6);
while(master.state == 1) {}
delay(500);
}
void timerInterrupt() {
master.update();
}
В чем беда, или нужно обязательно описывать полный функционал?
Спасибо