STM32 с нуля. Использование DMA и USART.

Пришло время рассказать об одной потрясающей штуке под названием DMA(ПДП) – то есть прямой доступ к памяти (Direct Memory Access). Поясню что же это такое.

В двух словах – прямой доступ к памяти позволяет перемещать данные без(!) участия центрального процессора. То есть процессор работает себе преспокойненько, не отвлекается ни на что, а DMA в этот момент может пересылать огромные массивы данных, например, в USART. Думаю сразу понятно насколько это полезно, ведь процессору теперь не надо отвлекаться от основной полезной работы.

А в контроллерах STM32F10x даже не один, а два контроллера прямого доступа к памяти! И, соответственно, у каждого несколько каналов (у DMA1 – 7, а у DMA2 – 5). Вот как выглядит разделение каналов между периферийными устройствами:

Читать далее