Как подсчитать количество байтов, появляющихся в Arduino serial?
Мне нужно подсчитать количество байтов, появляющихся в шине serial (UART bus), как подсчитать байты в Arduino с последовательными функциями Arduino? возможно ли это?
Применение - Связь RS485 с несколькими платами без ведомых идентификаторов
ведомые платы будут отправлять данные на главную плату, когда,
1-й 10 байт = ведущие отправляют 10-байтное сообщение всем ведомым
рабы слушают шину всегда, пока не настанет очередь отправлять данные
когда количество байтов равно 10, ведомый 1 отправляет данные 5 байтов ведущему
когда количество байтов равно 15 (10+5), ведомый 2 отправляет данные 5 байт ведущему
когда количество байтов равно 20 (15+5), ведомый 3 отправляет данные 5 байт ведущему
максимальное количество - 25 известных значений
@, 👍2
Обсуждение1 ответ
Serial.available()
возвращает количество байтов, доступных для чтения в буфере.
int nBytes=Serial.available();
if (nBytes > x) {
............
............
............
}
Добро пожаловать в Arduino: SE. Просто замечание: ответы, размещенные здесь, должны быть написаны на английском языке., @sempaiscuba
- Когда дело доходит до связи UART-RS485, в чем разница между модулем "MAX485" и модулем "HW-0519"?
- Управление VFD с помощью ModBus RTU через RS485 и Arduino
- Arduino RS485 shield к датчику температуры и влажности RS485
- Проблема со связью по Modbus между двумя Arduino при записи более 27 регистров.
- Проблема последовательной связи RS-485 с arduino
- Сборка последовательного адаптера RS485 к USB с помощью digispark
- Последовательный модуль повторяет «0x00»
- Serial Enable Maxim RS485 Pin
if (Serial.available() > 0) {входящий [байтовый счет] = Serial.read(); Байтовый счет ++; }
гдеБайтовый счет
подсчитывает количество полученных байтов, авходящий [..]
хранит полученные байты или что-то в этом роде? Похоже, протокол не очень отказоустойчив., @StarCatПодсчет прост, самое сложное - знать, когда нужно сбросить счетчик. Предположим, что вы иногда будете выходить из синхронизации., @Chris Stratton
У вас должен быть надежный, восстанавливаемый способ узнать, когда * начинать * подсчет. Предположим, что система иногда будет неправильно синхронизирована по той или иной причине, вам нужно иметь самокорректирующуюся конструкцию, которая может вернуть все узлы на борт и подсчитывать * следующий * цикл вместе., @Chris Stratton