Поиск

USART через DMA на STM32F042


Добавил в коллекцию еще один сниппет.
Казалось бы, в USART через DMA ничего особенного нет, но по сравнению с STM32F103 у нулевой серии есть замечательное прерывание USART: «character match».
В этом примере DMA организует прием-передачу данных (причем на прием стоит двойная буферизция), а прерывание character match позволяет определить, было ли окончание строки. Если было, то выставляется соответствующий флаг и буфера меняются местами; если же не было, то при переполнении буфера DMA прием возобновляется в тот же буфер и выставляется флаг overflow.
Принятая строка возвращается обратно «задом наперед», а каждые ~5 секунд выводится еще и надпись «dummy text». Например, если написать

Привет
Аргентина манит негра
1234567

на выходе получим:

тевирп
dummy text
арген тинам анитнегрА
dummy text
7654321

eddy_em.livejournal.com

Добавить комментарий