Тег: stm32 - сторінка 3


1 2 3 4

14. STM32. Програмування STM32F103. RTC

20.09.2016
14. STM32. Програмування STM32F103. RTC

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

Годинник реального часу (RTC)

STM32 мають вбудований годинник реального часу. Він може працювати незалежно від основного живлення мікроконтролера. Для роботи вбудованого годинника до спеціального виводу треба підключити живлення напругою 3В. Наприклад, батарейку CR2032. Такі батарейки використовують у годинниках, у комп`ютерах на материнських платах, та в інших приладах. Годинник споживає дуже мало енергії, тому батарейки вистачає на тривалий час. Також годинник може працювати як будильник - формувати сигнал на одному з виходів або виводити мікроконтролер з режиму енергозбереження. Спочатку ми запустимо годинник і налаштуємо таким чином, щоб він рахував секунди і продовжував працювати після відключення основного живлення мікроконтролера. Будильник розглянемо пізніше.

STM32

11. STM32. Програмування STM32F103. TIMER. Encoder

07.09.2016
11. STM32. Програмування STM32F103. TIMER. Encoder

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

Ще одна корисна функція таймера - робота з інкрементними (квадратурними) енкодерами. Ми налаштуємо таймер таким чином, щоб він обробляв сигнали з двох своїх вхідних каналів і змінював свій лічильник у зазначених межах. Тобто, коли ми будемо обертати енкодер в одному напрямку, лічильник таймера буде збільшуватися, в зворотньому - зменшуватися. У прикладі ми встановимо TIM_Period = 100. Це значить, що лічильник таймера буде зменшуватися або збільшуватися в залежності від напрямку обертів енкодера у цих межах. При прямому обертанні енкодера, коли лічильник дорахує до 100, він перестрибне на 0. При зворотньому напрямку, коли лічильник зменшиться до нуля, автоматично перестрибне на 100. Нам більше нічого не доведеться контролювати, лише зчитувати лічильник таймера. У наступному прикладі програма періодично опитує лічильник таймера і відправляє його значення у послідовний порт USART.

STM32

12. STM32. Програмування STM32F103. TIMER. PWM

09.09.2016
12. STM32. Програмування STM32F103. TIMER. PWM

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

У попередніх статтях ми познайомились з тим, як таймери можуть захоплювати вхідний сигнал. Таймери мікроконтролера STM32 також можуть формувати вихідні сигнали. Сьогодні ми познайомимося з PWM або ШІМ сигналом на прикладах.

Ініціалізація PWM виконується наступним чином:

  • налаштовується вихід порту відповідного каналу таймера, який буде задіяний для формування PWM сигналу
  • виконуються базові налаштування таймера
  • виконується налаштування OC каналу таймера (налаштування параметрів PWM)
  • вмикається таймер

STM32

10. STM32. Програмування STM32F103. TIMER. Захоплення сигналу

02.09.2016
10. STM32. Програмування STM32F103. TIMER. Захоплення сигналу

10. STM32. Программирование STM32F103. TIMER. Захват сигнала
(на русском языке)

Однією з типових задач для мікроконтролера є обробка вхідних сигналів. У STM32 з цією задачею досить вправно справляються таймери загального призначення. Але, перш ніж перейти до розглядання теми захоплення сигналу таймером, спочатку розглянемо ще один приклад, який є продовженням попередньої статті.

STM32

9. STM32. Програмування STM32F103. TIMER

29.08.2016
9. STM32. Програмування STM32F103. TIMER

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

Таймери загального призначення

Таймери у мікроконтролерах STM32 поділяються за функціоналом на:
  1. basic timers (базові таймери)
  2. general-purpose timers (загального призначення: TIM2, TIM3, TIM4)
  3. advanced-control timers (продвинуті таймери: TIM1)
У різних мікроконтролерах кількість таймерів різна. Згідно документації до контролера STM32F103C8 маємо 3 таймера general-purpose, і один advanced-control.

STM32

STM32. Скачати приклади

23.08.2016
STM32. Скачати приклади

STM32. Скачать примеры
(на русском языке)

Скачати приклади до STM32F103 для CooCox CoIDE

Усі приклади розташовані на сайті github.com: https://github.com/avislab/STM32F103

Посилання на GIT-файл: https://github.com/avislab/STM32F103.git

Скачати усі приклади одним ZIP-архівом: https://github.com/avislab/STM32F103/archive/master.zip

Приклади постійно доповнюються і корегуються. Інколи не синхронно з виходом нових статей про STM32. Остання редакція: 15.02.2017

STM32 Початківцям Схеми і прошивки

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

6. STM32. Програмування STM32F103. NVIC

19.08.2016
6. STM32. Програмування STM32F103. NVIC

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

NVIC (Nested vectored interrupt controller) - модуль контролю переривань. Він виконує наступні функції:
  • дозволяє/забороняє переривання
  • назначає пріоритет переривань (від 0 до 15. 0 - максимальній пріоритет, 15 - мінімальний пріоритет)
  • автоматично зберігає дані при виконанні одиноких чи вкладених переривань.
Цей контролер керує усіма перериваннями: і зовнішніми і перериваннями модулів самого контролера, і, як Ви вже зрозуміли, у STM32 є пріоритети переривань. А це значить, що переривання з більшим пріоритетом може перервати виконання обробки переривання з меншим пріоритетом.

STM32

5. STM32. Програмування STM32F103. USART

17.08.2016
5. STM32. Програмування STM32F103. USART

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

Ми вже використовували послідовний порт для програмування мікроконтролера. Тепер застосуємо його за прямим призначенням. STM32F103 Має 3 послідовних USART порти. Ми розглянемо приклад з USART1. Решта портів працюють аналогічно. У цьому прикладі ми підключимо мікроконтролер до комп`ютера за допомогою UART-USB перехідника. Та будемо використовувати термінальну програму для передачі команд мікроконтролеру.

STM32

4. STM32. Програмування STM32F103. Тактування

15.08.2016
4. STM32. Програмування STM32F103. Тактування

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

Тактування - це серце мікроконтролера. Для роботи мікроконтролера серце має битися. Чим вища частота, тим швидше працює мікроконтролер, але і більше споживає енергії. І навпаки, чим менша частота тактування, тим менше споживання енергії та менша швидкість роботи контролера. Те саме стосується периферії. Тактування слід налаштовувати в залежності від поточних задач. У попередніх прикладах ми не займали налаштування тактування і мікроконтролер працював з невідомою нам частотою. Але у подальшому, при роботі з периферією нам прийдеться налаштовувати сам мікроконтролер і певні модулі на роботу на конкретній частоті. Тому ми маємо розібратися з цим питанням.

STM32

3. STM32. Програмування STM32F103. GPIO

11.08.2016
3. STM32. Програмування STM32F103. GPIO

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

У попередній статті ми використовували простеньку програму, яка блимає світлодіодом. Трохи модифікуємо її і спробуємо розібратися, як налаштувати виводи мікроконтролера для роботи на вхід і вихід. C13 налаштуємо як вихід. До нього підключений світлодіод на тестовій платі. B0 налаштуємо на вхід і підключимо до нього кнопку. У натиснутому положенні кнопка має замикати ногу B0 на землю.

STM32
1 2 3 4

Архіви