-
- У меня на всех платформах одинаково. По прерыванию опустошения сдвигового буфера и опустошению кольцевого буфера, перекидываю DE. Опционально может включаться задержка на перекидывание на энное количество миллисекунд. - vesago(05.06.2024 12:24)
- У меня обмен - в конечном автомате, с использованием таймера. DE
управляется только программно - включается за 1.5 символа до старта
первого и выключается так же, с задержкой на полтора. Интервал
между кадрами 3.5. - Nikolay_Po(05.06.2024 10:35)
- +1, ибо прерывание по пустому сдвиговому буферу есть не во всех контроллерах - VLLV(06.06.2024 09:49)
- Ну странный вопрос, ибо простой и .. на вкус и цвет.... POV(96 знак., 05.06.2024 09:48, картинка, картинка)
- Обычно следующий байт по пустому буферу, а DE по окончанию передачи, если без ДМА. - Andreas(05.06.2024 09:59)
- Это у меня в прерывании CH32V203, не модбас. petrd(559 знак., 05.06.2024 09:15)
- Если речь про MODBUS: il-2(650 знак., 05.06.2024 08:30)
- когда говорю программе передать - устанавливаю DE на передачу. Передача по прерываниям. Перед эти высчитываю по количеству байт длительность в мсек. Потом снимаю DE. Программный DE только один раз использовал. Тоже по причине несвободы выводов. Там к тому же еще пришлось полудуплекс применять. TX и RX на одном выводе. Поэтому DE надо было точно по времени делать. :-) - Лaгyнoв(05.06.2024 07:57)
- В прерывании "передача завершена" (или по прерыванию "буфер
передатчика пуст" запускать таймер на
десять-или-сколько-там-у-вас-бит) - Cкpипaч(05.06.2024 07:56)
- Да уж... В AVR это работает без всяческих извратов.. - Гyдвин(05.06.2024 09:34)
- Не всегда. РС485, убираю ДЕ по прерыванию "передача завершена". И
сбой. Пришлось держать линию (по таймеру) 1,5 байта, тогда всё
чётко. - maik-vs(05.06.2024 10:51)
- Угу. А если какой-нибудь межблочный интерфейс и нужна скорость
>115к, то и передачу начинать по таймеру, после включения DE.
А то начало старт-бита драйвером проглатывается. - Nikolay_Po(05.06.2024 13:04)
- У STM32 легко делается задержка на 1 байт, нужно переключить в 0 и снова в 1 бит TE, тогда передатчик отработает Idle перед тем как начать передачу первого байта данных. - ЫЫyкпy(05.06.2024 13:16)
- Это с чего оно проглатывается? Переключил и передаешь, задержка между дерганьем пина и стартом хоть микросекунда есть, время переключения драйвера десятки нс. - Andreas(05.06.2024 13:15)
- Ещё не встречал УАРТа, у которого TXC неправильный. Таймауты после
TXC не были нужны от слова совсем. - Vit(05.06.2024 11:44)
- А я - встречал. Навскидку: Nikolay_Po(827 знак., 05.06.2024 13:03)
- Угу. А если какой-нибудь межблочный интерфейс и нужна скорость
>115к, то и передачу начинать по таймеру, после включения DE.
А то начало старт-бита драйвером проглатывается. - Nikolay_Po(05.06.2024 13:04)
- Не всегда. РС485, убираю ДЕ по прерыванию "передача завершена". И
сбой. Пришлось держать линию (по таймеру) 1,5 байта, тогда всё
чётко. - maik-vs(05.06.2024 10:51)
- Да уж... В AVR это работает без всяческих извратов.. - Гyдвин(05.06.2024 09:34)