сайт для палких паяльників

Translations

Переклади з української на інші мови

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

Одной из типичных задач для микроконтроллера является обработка входных сигналов. STM32 с этой задачей довольно ловко справляются с помощью таймера общего назначения. Но, прежде чем перейти к рассмотрению темы захвата сигнала таймером, сначала рассмотрим еще один пример, который является продолжением предыдущей статьи.

Continue reading “10. 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.
Continue reading “9. STM32. Программирование STM32F103. TIMER” »

8. STM32. Программирование STM32F103. DMA

DMA (Direct Memory Access) контроллер прямого доступа к памяти. Его главная задача: передача данных на аппаратном уровне между памятью и периферией без участия процессора. Имеется в виду, что при этом наша программа может выполнять другие операции, не отвлекаясь на передачу данных. В предыдущей статье мы задействовали DMA для работы с АЦП. И это было круто. Теперь рассмотрим работу DMA подробнее и еще раз убедимся в мощной пользе DMA на примере еще одной типичной задачи: отправки данных через USART.

Мы уже использовали USART. Отправка данных через USART – достаточно длительный процесс, во время которого (в предыдущих примерах) процессор ожидает, пока будет отправлен весь буфер. Смотри функцию USARTSend. Пока данная функция не закончит отправку всего буфера, обработка в главном цикле программы далее не идет. Все ждут. У нас были достаточно простые примеры и нам было все равно. Но, рано или поздно, нам понадобится вся мощность контроллера и надо будет оптимизировать эту операцию. Один из методов – использование DMA. Мы подготовим данные на отправку, дадим задание DMA, он будет отправлять байт за байтом, а процессор займется чем-то более важным.

Continue reading “8. STM32. Программирование STM32F103. DMA” »

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

Continue reading “STM32. Скачать примеры” »

7. STM32. Программирование STM32F103. ADC

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

Continue reading “7. STM32. Программирование STM32F103. ADC” »

6. STM32. Программирование STM32F103. NVIC

NVIC (Nested vectored interrupt controller) – модуль контроля прерываний. Он выполняет следующие функции:

  • разрешает / запрещает прерывание
  • назначает приоритет прерываний (от 0 до 15. 0 – максимальной приоритет, 15 – минимальный приоритет)
  • автоматически сохраняет данные при выполнении одиночных или вложенных прерываний.

Этот контроллер управляет всеми прерываниями: и внешними и прерываниями модулей самого контроллера, и, как Вы уже поняли, у STM32 есть приоритеты прерываний. А это значит, что прерывание с большим приоритетом может прервать выполнение обработки прерывания с меньшим приоритетом.

Continue reading “6. STM32. Программирование STM32F103. NVIC” »

5. STM32. Программирование STM32F103. USART

Мы уже использовали последовательный порт для программирования микроконтроллера. Теперь применим его по прямому назначению. У STM32F103 есть 3 последовательных USART порта. Мы рассмотрим пример с USART1. Остальные порты работают аналогично. В этом примере мы подключим микроконтроллер к компьютеру с помощью UART-USB переходника и будем использовать терминальную программу для передачи команд микроконтроллеру.

Continue reading “5. STM32. Программирование STM32F103. USART” »

4. STM32. Программирование STM32F103. Тактирование

Тактирование – это сердце микроконтроллера. Для работы микроконтроллера сердце должно биться. Чем выше частота, тем быстрее работает микроконтроллер, но и больше потребляет энергии. И наоборот, чем меньше частота тактирования, тем меньше потребление энергии и меньше скорость работы контроллера. То же касается периферии. Тактирование следует настраивать в зависимости от текущих задач. В предыдущих примерах мы не трогали настройки тактирования и микроконтроллер работал с неизвестной нам частотой. Но в дальнейшем, при работе с периферией нам придется настраивать сам микроконтроллер и определенные модули на работу на конкретной частоте. Поэтому мы должны разобраться с этим вопросом.

Continue reading “4. STM32. Программирование STM32F103. Тактирование” »

3. STM32. Программирование STM32F103. GPIO

В предыдущей статье мы рассматривали простенькую программу, которая мигает светодиодом. Немного модифицируем ее и попробуем разобраться, как настроить выводы микроконтроллера для работы на вход и выход. C13 настроим как выход. К нему подключен светодиод на тестовой плате. B0 настроим на вход и подключим к нему кнопку. В нажатом положении кнопка должна замыкать ногу B0 на землю.
Continue reading “3. STM32. Программирование STM32F103. GPIO” »

2. STM32. Программирование. IDE для STM32

Для того, чтобы разрабатывать свои программы нам понадобится среда разработки, желательно с дебаггером, и компилятор C.

Я остановился на CooCox CoIDE и GCC. Во-первых этот софт не стоит денег, во-вторых – с ним не возникло никаких вопросов. Установил и начал работать. Правда, CooCox сделан только под Windows. Это не совсем хорошо. И хотя на Ubuntu CooCox работает под wine и даже компиляция проходит успешно, с дебаггером проблема. И работа через wine – это не true way.

Continue reading “2. STM32. Программирование. IDE для STM32” »

Микроконтроллеры STM32 приобретают все большую популярность благодаря своей мощности, достаточно разнородной периферии, и своей гибкости. Мы начнем изучать STM32F103C8T6, используя бюджетную тестовую плату, стоимость которой не превышает 2 $ (у китайцев). Еще нам понадобится ST-Link программатор, стоимость которого около 2.5 $ (у китайцев). Такие суммы расходов доступны и студентам и школьникам, поэтому именно с такого бюджетного варианта я и предлагаю начать.

STM32F103C8_01 STLine_01
Этот микроконтроллер не является самым мощным среди STM32, но и не самый слабый. Существуют различные платы с STM32, в томе числе Discovery которые по цене стоят около 20 $. На таких платах почти все то же, что и на нашей плате, плюс программатор. В нашем случае мы будем использовать программатор отдельно.

Continue reading “1. STM32. Программирование STM32F103. Тестовая плата. Прошивка через последовательный порт и через ST-Link программатор” »

Translate
Архіви

© 2011-2019 Андрій Корягін, Кременчук - Київ, Україна