ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
1430782 Топик полностью
RxTx (28.04.2024 18:05, просмотров: 59) ответил Nikolay_Po на Для передачи точно DMA удобнее. Для приёма - зависит от протокола и нагрузки. Я чисто на прерываниях прием делал, два прерывания - одно UART, прием/передача/ошибки, другое - таймер - временные параметры протокола. Обеспечиваю предварительное занятие линии RS-485, так, чтобы передача первого старта шла уже после некоторого времени в активном состоянии драйвера - чтобы сбросить межкадровые помехи, если были на "пустой" линии.
Спасибо, Коль, за объяснение, всегда приятно тебя читать. Да, DMA это достаточно несложно, автора видать отпугивает непонятность реализации. А реализовать его проще всего "поженив" с программным циркулярным буфером. Тогда "пишущий" в буфер указатель (или лучше index) будет программный. "Заворачивается" он банальным AND, т.е. &= . А читающий указатель (или index) выполняется на DMA с тем нюансом что надо будет обслужить "заворот". 
Спасибо, князь. Вы настоящий дворянин. И программист.