Тег: dma


8. STM32. Програмування STM32F103. DMA

25.08.2016
8. STM32. Програмування STM32F103. DMA

8. STM32. Программирование STM32F103. DMA
(на русском языке)

DMA (Direct Memory Access) контролер прямого доступу до пам`яті. Його головна задача: передача даних на апаратному рівні між пам’ятю і периферією без участі процесора. Мається на увазі, що при цьому наша програма може виконувати інші операції, не відволікаючись на передачу даних. В попередній статті ми задіяли DMA для роботи з АЦП. І це було круто. Тепер розглянемо роботу DMA докладніше і ще раз впевнимось у потужній користі DMA на прикладі ще однієї типової задачі: відправки даних через USART.

Ми вже використовували USART. Відправка даних через USART - досить тривалий процес, під час якого (у попередніх прикладах) процесор чекає, поки буде відправлений весь буфер. Дивись функцію USARTSend. Поки ця функція не закінчить відправку всього буфера, далі обробка у головному циклі програми не йде. Усі чекають. У нас були досить прості приклади і нам було байдуже. Але, рано чи пізно, нам знадобиться вся потужність контролера і треба буде оптимізувати цю операцію. Один з методів - використання DMA. Ми підготовимо дані на відправку, дамо завдання DMA, він буде собі відправляти байт за байтом, а процесор займеться чимось більш важливим.

STM32

7. STM32. Програмування STM32F103. ADC

22.08.2016
7. STM32. Програмування STM32F103. ADC

7. STM32. Программирование STM32F103. ADC
(на русском языке)

ADC (Analog-to-Dogital Converter) - Аналого-цифровий перетворювач (далі АЦП). АЦП конвертує аналоговий сигнал у цифровий код. Такий собі вольтметр, який ми сьогодні заставимо працювати у декількох режимах, у тому числі із застосуванням DMA. Мікроконтролери можуть мати декілька АЦП. Конкретно STM32F103C8 має 2 АЦП. АЦП може обробляти декілька каналів (до 18). Канал - це зовнішній сигнал, який може бути заведений на одну з ніг мікроконтроллера, або внутрішній канал, наприклад вбудований термометр. Аналоговий сигнал можна подавати на ноги, які мають маркування ADC12_INn. Де n - номер каналу. Наприклад, ADC12_IN1.

STM32

Архіви