STM32. Урок 14. DMA. Direct Memory Access

preview_player
Показать описание
Очередной урок по периферийному блоку STM32. В полном объеме рассматривается блок прямого доступа к памяти - DMA, как в общем от компании ST, так и на практическом примере микроконтроллера STM32F103 отладочной платы "BluePill". Рассказывается работа и особенности использования DMA в режима Polling Mode - режиме опроса и Interrupt Mode - режиме работы с прерываниями.

Вы можете помочь каналу Яндекс-деньги:
Рекомендации по теме
Комментарии
Автор

Как всегда информативно и доходчиво, большое Вам спасибо. Надеюсь в будущих уроках будет пролит свет на USB интерфейс.

ВикторДухин-пп
Автор

На заднем фоне кто-то настойчиво требует внимания)) Урок интересный, спасибо!

ПетрГуберт
Автор

Подскажите после передачи данных через DMA - буфер пуст. Так и должно быть? Он опустошает или копирует? Спасибо.

NIKOLAY_PSHONIA
Автор

хотелось бы послушать про DMAMUX. как по мне немного умудрённая штука, пока до конца не разобрался(

openFrimeTv
Автор

Расскажите про dmamux, который появился в новых микроконтроллерах ST. Вещь приятная - теперь распределение каналов DMA по разной периферии перестало быть квестом. Теперь любой канал DMA можно подключить к любой периферии. Но есть и непонятные моменты: синхронизация и request generatot. Никак не могу придумать, для чего это вообще может понадобиться.

pavelboboshkin
Автор

Я использую DMA, запускающийся от таймера для отладки интерфейсов, например, usart или i2c. DMA захватывает состояние GPIOx->IDR и складывает в буфер. Потом, по полученным данным делаю графики. С таким, конечно, и логический анализатор справится. Но логический анализатор не может заглянуть, например, в регистр флагов интерфейса. К сожалению, в контроллерах серий G0 и C0 фирма ST подложила свинью: там DMA не имеет доступа к GPIO.

pavelboboshkin
Автор

Добрый день. Запустил DMA на передачу - шлет весь буфер [128] . А как передать из буфера несколько символов а не весь гнать??? Спасибо.

NIKOLAY_PSHONIA
Автор

Боюсь спросить Ваш опыт работы сколько лет?

Bi-djiy
Автор

27:00 7 микросекунд это быстро? при тактах 10 наносекунд?

nacgul
Автор

здравствуйте. подскажите, пожалуйста, откуда примеры программ в этом ролике. из апноутов и референсов? ссылки можно на них? по stm32f103. спасибо.

sergfert
Автор

При работе через DMA, как осуществлять контроль отправки данных? Если после функции HAL_UART_Transmit_DMA создать новую функцию HAL_UART_Transmit_DMA с другими данными, то они как правило теряются.

y_ivan
Автор

@NR.electronics здравствуйте как можно с вами связаться вк есть ? очень нужно помощь ваши (

studentru
Автор

22:10 Точно, "алижнмент"? Может "алайнмент"?

janedoe
Автор

Я настроил АЦП и ДМА в прерівании . И записал сбытие Если буфер больше 525 то в порт запись 1 иначе 0.Программа работает ну как то не правильно.Вращаеш резистор нажимаешь ресет.И тогда показует состояние светодиода.Почему так работает?

ivanrusev
Автор

Будут ли уроки про таймеры и АЦП\ЦАП ?

ваняхилевич
Автор

Для меня DMA чем то напоминает северный мост.

ЧПУ
Автор

Спасибо большое за видео! Хотел бы узнать в каких случаях (примерах из жизни) используется прерывание по завершению половины обмена?

OrlenokV