ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
441160 Топик полностью
LightElf (12.09.2013 14:47, просмотров: 220) ответил Ксения на Прерывание по UDRE не знает, лежит ли в буфере что-то ещё, требующее передачи, или там пусто. А если пусто, то это прерывание само не успокоится, а будет долбить непрерывно, пока предатчик пуст. Стало быть, это прерывание придется отключать
Я чего-то не понимаю, а в чем проблема включать-выключать прерывание UDRE? Чему это мешает?  В функции передачи: кладем байт в буфер и разрешаем прерывание UDRE. Удобно, что в функции передачи не нужно анализировать какие-то флаги, проверять чем занят UART и т.д. Просто взводим бит. В обработчике прерывания: Если есть данные в буфере - отправляем следующий байт, иначе запрещаем прерывание UDRE. В этот момент можно разрешить прерывание TXC, чтобы уже в его обработчике переключить драйвер RS485 на прием.
Не надо делать мне как лучше, оставьте мне как хорошо