• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

UART - transmission finished ? как узнать, когда закончена передача данных

latonita

New member
привет

надо бы мне подключиться через rs485 к счетчикам для снятия данных. есть полу-дуплексные трансиверы rs485. скорости небольшие - 9600 бод

алгоритм в моей голове простой -
1) перевожу трансивер в режим передачи данных (ставлю ногу tx enable = 1)
2) передаю данные.
3) жду отмашки, что все передано (где тут transmission finished interrupt?)
4) иду читать данные.

подскажите, как мне узнать, когда передача данных физически завершена?
могу использовать или uart0 или uart1 - без разницы.
возможно, будет работать и без этого, но мне кажется так будет правильно.

спасибо


p.s. "без этого" - я думал про передачу данных, потом flush(), потом небольшая задержка...
 

Алексей.

Active member
Название топика сбивает с толку, откуда в esp8266 синхронный уарт, пара уартов действительно есть, может все же, вопрос о драйвере интерфейса rs485 (не путать с программным драйвером). Ногодрыг некоторым драйверам действительно был нужен, но maxim уж давно выпускает драйвер MAX13487EESA который сам переключает прием/передачу.
Вешал я такой на USB to TTL 4-pin и собирал данные по модбасу с электросчетчика.
 

=AK=

New member
подскажите, как мне узнать, когда передача данных физически завершена?
Сделайте чтобы приемник RS485 всегда был включен. Тогда ваш UART будет принимать все, что сам передает. Когда примeте последний переданный символ, тогда, значит, передача завершена.
 

latonita

New member
Название топика сбивает с толку, откуда в esp8266 синхронный уарт,
это верно, опечатался, имел в виду UART конечно же

Сделайте чтобы приемник RS485 всегда был включен. .... Когда примeте последний переданный символ, тогда, значит, передача завершена.
А вот это интересная идея! Спасибо, попробую.
 
Сверху Снизу