Creating a new project for stm32 in keil ide

Как работать с keil uvision 5

printf via SWO in uVision

To reroute your printf calls to SWO the following settings must be set in Keil uVision:

  • Debug interface must be SWD.
  • Enable Trace in project options under Debug->Use J-LINK/J-TRACE Cortex->Settings->Trace->Enable
  • In the same menu set «Trace Port» to «Serial Wire Output — UART/NRZ»
  • In the same menu set «Core Clock» to the clock speed the TPIU is clocked at. Usually that equals the CPU clock speed.
  • Press OK and save the settings. The resulting settings should look like this:

Now press the «Manage Run-Time Environment» button.

  • Now set Compiler->I/O->STDOUT to ITM and activate the check box.
  • Rebuild your code.

Using J-Link Flashloader

First, choose the right device in the project settings if not already done:

  • Click Project | Options for Target from the main menu
  • Switch to the Device tab
  • Select the appropriate device, for example STM32F207IG

Secondly, enable SEGGER flash loader:

  • Click Project | Options for Target from the main menu
  • Switch to the Utilities tab
  • Check Use Target Driver for Flash Programming
  • Select J-LINK / J-Trace Cortex in order to use the J-Link built-in flashloader

Thirdly, configure flash loader:

  • Click Project | Options for Target from the main menu
  • Switch to the Debug tab
  • Select J-LINK / J-Trace Cortex

  • Click Settings
  • Check Verify Code Download and Download to Flash as shown in the screenshot below

Note:

  • Please note that flash download through the «Download» (F8) is not supported for J-Link right now.
  • Support may be added in future versions of Keil MDK.

Процесс настройки платы STM32 для работы с Keil uVision 5 и выбор требуемых настроек

Прежде чем начать разработку программы для платы STM32 в среде Keil uVision 5, необходимо правильно настроить среду разработки и выбрать требуемые настройки. В этом разделе мы рассмотрим шаги, которые необходимо выполнить для успешного запуска работы с данной платой в Keil uVision 5.

1. Установите Keil uVision 5, следуя инструкциям, указанным на официальном сайте разработчика.

2. Подключите плату STM32 к компьютеру с помощью USB-кабеля.

3. Откройте Keil uVision 5 и выберите нужный проект или создайте новый.

4. В меню «Project», выберите «Options for Target» или нажмите сочетание клавиш «Ctrl + Shift + F5».

5. В открывшемся окне «Options for Target» выберите вкладку «Debug» и укажите требуемые настройки для отладки (например, выберите нужный отладчик и периферийные устройства).

6. Затем выберите вкладку «C/C++» и укажите настройки для компиляции и линковки программы (например, выберите нужный компилятор, настройте оптимизацию и другие параметры).

7. Если вам необходимо использовать какие-либо внешние библиотеки или периферийные устройства, перейдите на вкладку «Manage Run-Time Environment» и укажите пути к необходимым файлам.

8. После того как вы указали все необходимые настройки, нажмите кнопку «OK», чтобы закрыть окно «Options for Target».

9. Теперь вы можете начать программировать и отлаживать код для платы STM32 в среде Keil uVision 5, используя выбранные настройки.

Важно: Перед запуском программы на плату STM32 убедитесь, что вы правильно подключили плату к компьютеру, выбрали правильные настройки в Keil uVision 5 и настроили все необходимые вызовы функций и параметры программы

PackInstaller

KeilPackInstaller

Праворуч на вкладці Devices знаходимо наш контролер. У моєму випадку це STM32F103C8, після чого у вкладці Packs зліва по черзі інсталюємо всі пакети.

Після того, як встановимо всі пакети, закриваємо PackInstaller і створюємо проект за допомогою меню
Project -> New mVision Project…

Оибираємо папку та ім`я проекту.

Після чого буде запропоновано вказати мікроконтролер.

Далі з`явиться вікно, у якому потрібно обрати компоненти які будуть використовуватися у проекті.

Обов`язково обрати:

  • CMSIS-CORE — підтримка основного ядра ARM
  • System Startup — основний конфігураційний системний файл
  • Standard Peripherals Drivers Framework — стандартні драйвери периферії
  • GPIO — управління ногами мікроконтролера
  • RCC — управління тактуванням периферії

ResolveОК

Тепер створюємо основний файл програми. Правою кнопкою миші натискаємо на Sourcegroup 1, далі Add New Irem to Group Source Group 1…

Вказуємо тип та ім`я файлу:

Після чого буде створено і відкрито файл main.c. Наберіть в ньому наступний код програми:

Перед тим як компілювати програму потрібно зробити деякі налаштуваня проекту. Натискаємо на Options for Targe…. Відкриється вікно налаштувань проекту.

На Вкладці «Target» потрібно вказати тактову частоту мікроконтролера.

На вкладці «Output» вказуємо формат вихідного файлу.

На вкладці «C/C++» у полі Define: вказуємо такі опції:

USE_STDPERIPH_DRIVER, STM32F10X_CL

Без цих опцій проект не буде нормально компілюватися. Можна вибрати рівень оптимізації.

Тепер можна закрити вікно налаштувань і спробувати зібрати проект за допомогою меню Project->Build target

Після вдалої збірки маємо побачити таку картину:

Успіхів.

Дивись також:

  • 1. STM32. Програмування STM32F103. Тестова плата. Прошивка через UART та через ST-Link
  • 2. STM32. Програмування. IDE для STM32
  • 3. STM32. Програмування STM32F103. GPIO
  • 4. STM32. Програмування STM32F103. Тактування
  • 5. STM32. Програмування STM32F103. USART
  • 6. STM32. Програмування STM32F103. NVIC
  • 7. STM32. Програмування STM32F103. ADC
  • 8. STM32. Програмування STM32F103. DMA
  • 9. STM32. Програмування STM32F103. TIMER
  • 10. STM32. Програмування STM32F103. TIMER. Захоплення сигналу
  • 11. STM32. Програмування STM32F103. TIMER. Encoder
  • 12. STM32. Програмування STM32F103. TIMER. PWM
  • 13. STM32. Програмування STM32F103. EXTI
  • 14. STM32. Програмування STM32F103. RTC
  • 15. STM32. Програмування STM32F103. BKP
  • 16. STM32. Програмування STM32F103. Flash
  • 17. STM32. Програмування STM32F103. Watchdog
  • 18. STM32. Програмування STM32F103. Remap
  • 19. STM32. Програмування STM32F103. I2C Master
  • 20. STM32. Програмування STM32F103. I2C Slave
  • 21. STM32. Програмування STM32F103. USB
  • 22. STM32. Програмування STM32F103. PWR
  • 23. STM32. Програмування STM32F103. Option bytes
  • 24. STM32. Програмування STM32F103. Bootloader
  • STM32. Скачати приклади
  • System Workbench for STM32 Інсталяція на Ubuntu
  • Keil uVision5 – IDE для STM32
  • IAR Workbench – IDE для STM32
  • Керування безколекторним двигуном постійного струму (BLDC) за допомогою STM32
  • Керування PMSM за допомогою STM32

Создание и загрузка программы в плату STM32 с помощью Keil uVision и ST-Link

Выполните следующую последовательность шагов

Шаг 1. Первым делом установите все необходимые драйверы для программатора ST-LINK V2, программы STM32CubeMX и Keil uVision, а также необходимые пакеты для платы STM32F103C8.

Шаг 2. Запустите STM32CubeMX.

Шаг 3. В нем нажмите на New Project (новый проект).

Шаг 4. После этого выполните поиск и выберите микроконтроллер STM32F103C8.

Шаг 5. На экране появится распиновка платы STM32F103C8, на которой вы можете задать необходимую конфигурацию (режимы работы) контактов. Также вы можете выбрать контакты для подключения периферийных устройств.

Шаг 6. Также вы можете нажать на один из контактов в представленной распиновке, после чего появится список контактов, в котором вы можете задать их конфигурацию.

Шаг 7. Для нашего проекта мы выбрали для контакта PA1 режим работы GPIO INPUT (на ввод данных), для контакта PC13 – GPIO OUTPUT, для отладки (debug) SYS – SERIAL WIRE (к этим контактам мы будем подключать контакты ST-LINK SWCLK & SWDIO. Выбранные и сконфигурированные (selected & configured) контакты окрашиваются в зеленый цвет как показано на следующем рисунке.

Шаг 8. Далее под вкладкой конфигурации (Configuration tab) выберите GPIO чтобы установить конфигурацию (режимы работы) для контактов, которые мы выбрали на предыдущем шаге.

Шаг 9. Затем в окне настройки конфигурации контактов (pin configuration box) мы можем настроить пользовательские метки для используемых нами контактов, то есть дать этим контактам осмысленные имена.

Шаг 10. После этого выберите пункт меню Project >> Generate Code.

Шаг 11. Появится диалоговое окно с настройками проекта. В этом окне вам необходимо ввести имя проекта и его местоположение, а также используемый инструментарий. Мы используем программу Keil, поэтому в качестве интегрированной среды разработки (IDE) выберите MDK-ARMv5.

Шаг 12. Далее под вкладкой генерации кода (Code Generator tab) выберите пункт «Copy only the necessary library files» и затем нажмите OK.

Шаг 13. Появится диалоговое окно генерации кода. Выберите Open Project чтобы автоматически открыть генерацию кода в Keil uvsion.

Шаг 14. Откроется инструмент Keil uVision с нашим автоматически сгенерированным кодом в STM32CubeMx и нашим введенным именем проекта с необходимыми подключенными библиотеками и кодами для контактов, работу которых мы настроили ранее.

Шаг 15. Теперь нам необходимо настроить логику работы программы. Например, включать светодиод (контакт PC13) при нажатии кнопки (контакт PA1) и выключать светодиод при отпускании кнопки. Поэтому выберите файл main.c чтобы включить в него необходимые фрагменты кода.

Шаг 16. Добавьте следующий фрагмент кода в цикл while(1).

Arduino

while (1)
{
if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==0) //=> DETECTS Button is Pressed
{
HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1); //To make output high when button pressesd
}

else
{
HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,0); //To make output Low when button de pressed
}
}

1
2
3
4
5
6
7
8
9
10
11
12

while(1)

{

if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==)//=> DETECTS Button is Pressed

{

HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1);//To make output high when button pressesd

}
 
else
{

HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,);//To make output Low when button de pressed

}

}

На следующем рисунке выделено цветом куда нужно вставить наш код.

Шаг 17. После того, как вы завершите редактирование кода, нажмите иконку Options for Target и в открывшемся окне на вкладке отладки (debug tab) выберите ST-LINK Debugger.

Также нажмите на кнопку Settings (настройки) и на вкладке Flash Download выберите пункт Reset and Run, после чего нажмите ‘ok’.

Шаг 18. Затем нажмите на иконку Rebuild чтобы заново скомпилировать все наши файлы.

Шаг 19. После этого вы можете подключить программатор ST-LINK к компьютеру и нажать на иконку DOWNLOAD или клавишу F8 чтобы загрузить в плату STM32F103C8 код программы, который мы сначала автоматически сгенерировали, а потом вручную отредактировали.

Шаг 20. Вы должны заметить индикацию загрузки программы внизу окна программы keil uVision.

Для тестирования работы нашего проекта нажмите кнопку в собранной конструкции проекта, при этом светодиод должен загореться. При отпускании кнопки светодиод должен погаснуть.

Как настроить Keil uVision 5

Шаг 1: Установка Keil uVision 5

Первым шагом необходимо загрузить и установить Keil uVision 5 на ваш компьютер. Вы можете найти установочный файл на официальном сайте Keil.

Шаг 2: Создание нового проекта

После установки запустите Keil uVision 5 и выберите «Файл» > «Создать новый проект». Выберите папку, в которой вы хотите сохранить проект, введите имя проекта и выберите микроконтроллер, с которым вы будете работать. Нажмите «Создать».

Шаг 3: Настройка параметров проекта

Перед тем, как приступить к программированию, необходимо настроить параметры проекта. Нажмите правой кнопкой мыши на вашем проекте в «Обозревателе проектов» и выберите «Свойства». Здесь вы можете настроить компилятор, линкер, отладчик и другие параметры проекта. Убедитесь, что все настройки соответствуют вашим требованиям.

Шаг 4: Создание и редактирование исходного кода

Теперь вы можете создавать и редактировать исходный код вашего проекта. Щелкните правой кнопкой мыши на папке «Исходные файлы» в «Обозревателе проектов» и выберите «Добавить файлы в проект». Выберите файлы, которые вы хотите добавить, и нажмите «Открыть». Затем вы можете редактировать файлы, используя встроенный текстовый редактор Keil uVision 5.

Шаг 5: Компиляция и запуск проекта

Когда вы закончите редактирование исходного кода, вы можете скомпилировать проект, нажав на кнопку «Сборка» в верхней панели инструментов. Keil uVision 5 выполнит компиляцию и проверит ваш код на наличие ошибок. Если ошибок нет, вы можете запустить проект, нажав на кнопку «Запуск» в верхней панели инструментов.

Шаг 6: Отладка проекта

Keil uVision 5 также предоставляет мощные средства отладки. Вы можете запустить отладку, нажав на кнопку «Отладка» в верхней панели инструментов. Здесь вы можете устанавливать точки останова, следить за значением переменных и выполнением кода, а также использовать другие функции отладчика.

Мы рассмотрели основные шаги настройки Keil uVision 5 для создания и компиляции проектов. Теперь вы можете начать программировать микроконтроллеры с помощью этой мощной IDE. Успехов вам!

Программирование STM32 Blue Pill с помощью Keil uVision и STM32CubeMX

Микроконтроллеры STM32 построены на основе архитектуры ARM Cortex M. В настоящее время они становятся все более популярными благодаря их высокой производительности и относительно невысокой стоимости. Ранее мы рассматривали программирование платы STM32F103C8, также известной под названием STM32 Blue Pill («синяя таблетка») с помощью Arduino IDE как с использованием внешнего FTDI программатора, так и через USB разъем.

Программирование платы STM32 с помощью Arduino IDE достаточно простое и открывает возможность использования множества библиотек, разработанных для платформы Arduino. В этом случае вам нет необходимости глубоко погружаться в изучение архитектуры ARM. Но в этой статье мы попробуем подняться на более высокий уровень в программировании плат STM32, который позволит нам не только улучшить структуру нашего программного кода, но также сэкономить объем памяти за счет неиспользования не нужных нам библиотек.

Для этого компания STMicroelectronics разработала инструмент под названием STM32Cube MX, который автоматически формирует базовый код для нашей программы исходя из используемой платы STM32 и подключенных к ней периферийных устройств. Таким образом, у нас отпадает необходимость написания кода для основных драйверов и периферийных устройств. В дальнейшем этот автоматически сгенерированный код можно отредактировать в программной среде Keil uVision. Законченную версию программы можно загрузить в плату STM32 с помощью программатора ST-Link, разработанного компанией STMicroelectronics.

В данной статье мы рассмотрим программирование платы STM32F103C8 (Blue Pill) с помощью Keil uVision и STM32CubeMX. В качестве периферийных устройств, подключенных к плате, будут использоваться кнопка и светодиод. Сначала мы автоматически сгенерируем код программы с помощью инструмента STM32Cube MX, а затем отредактируем его в программе Keil uVision.

Developing the First Application

It’s always easiest to start with a readily available basic code framework. Then, add the code that is required for the specific application and model of microcontroller.

Fortunately, STMicroelectronics provides a very useful graphical tool called STM32CubeMx that helps in creating a basic application project for any STM32 microcontroller of your choice by auto-generating hardware initialization code.

It also can be used to configure the peripherals on the multiplexed pins of the microcontroller, automating tasks such as detecting when a peripheral will no longer work because another peripheral is already using the pins it has access to.

The STM32CubeMX tool can be downloaded from here.

Get your FREE guide now: Ultimate Guide to STM32 Microcontrollers

The STM32Cube suite comes with an extensive set of drivers for all types of peripherals and support for an optional FreeRTOS (a free Real-Time Operating System) pre-integrated with the code, as well as other middleware like the FAT file system and USB.

The following section describes in detail how to create a simple UART application for the STM32F103C8T6 microcontroller that echoes whatever is typed on a terminal window.

  • Install the STM32CubeMX software.
  • Run the application and select New Project. It will then open the MCU Selector window as shown below.
  • Double click to select the microcontroller model being used. In this case we’re using the STM32F103C8T6. It then takes you to the pinout page for the selected microcontroller.

The STM32F103C8T6 is an ARM Cortex-M3 core with 64KB of Flash memory and 20KB of RAM memory.

Notice that when you select a microcontroller from the menu, a section with a detailed overview of the chip appears, as well as useful items like CAD resources and all of its documentation.

You can download ECAD symbols/footprints for the part and any other needed materials right from this window, which is a huge time-saver.

Double-clicking on the part in the list on the bottom right will initialize the project, showing the following window:

The tab that initially opens up, Pinout & Configuration, is the primary interface for the MCU. This is where peripherals are enabled and configured, and pin usage is labeled on the Pinout view in the center.

Peripherals, middleware, etc. can all be configured using the drop-down menus on the left sidebar.

Since this example uses UART, we go to the Connectivity option in the left sidebar, select USART1 peripheral, and enable it in Asynchronous mode.

STM32CubeMX automatically initializes the configuration and assigns the pins:

Notice that PA9 and PA10 are labeled with their new assignment. Additionally, there is a Configuration menu for UART available where settings can be tweaked.

We will be using the default settings, noting that the baud rate is at 115200 for later communication with the MCU.

Since the example will require interrupts enabled for UART, go to NVIC Settings and check Enabled next to USART1 global interrupt.

Now we are ready to generate the project code.

STM32CubeMX allows code generation for various types of project structures, which is a large part of its appeal – it can be used to generate projects for EWARM, MDK-ARM (what we will be using), or a barebones Makefile project.

Navigate to Project Manager–>Project in order to add the new project name and select the tool chain IDE to be used.

For this example, set the project name to ‘UARTEcho’ and select the MDK-ARM IDE for the project development.

Finally, generate the project code by clicking Generate Code in the upper right.

NOTE: This is a long, very detailed article so here’s a free PDF version of it for easy reading and future reference.

Написание и отладка кода

Keil uVision 5 предоставляет удобную среду разработки для написания и отладки кода для микроконтроллеров STM32. В этом разделе мы рассмотрим основные шаги по созданию и отладке проекта.

1. Создание нового проекта: для начала работы необходимо создать новый проект в Keil uVision 5. Для этого выберите пункт «Project» в меню, затем «New Project». Укажите имя проекта и выберите соответствующую целевую платформу STM32.

2. Написание кода: после создания проекта можно приступить к написанию кода. В Keil uVision 5 вы можете использовать язык программирования С, а также ассемблер для разработки кода для микроконтроллеров STM32.

3. Добавление файлов: в проект можно добавить несколько файлов с исходным кодом, если это необходимо для вашего проекта. Для этого выберите пункт «Project» в меню, затем «Add Files to Project». Выберите нужные файлы и добавьте их в проект.

4. Компиляция проекта: перед запуском отладчика необходимо скомпилировать проект. Для этого выберите пункт «Project» в меню, затем «Build Target». В результате компиляции будут выявлены ошибки и предупреждения в вашем коде, если они имеются.

5. Отладка проекта: после успешной компиляции проект можно отладить. Для этого выберите пункт «Debug» в меню, затем «Start/Stop Debug Session». Запустится отладчик, который позволит вам пошагово выполнять код, анализировать переменные, устанавливать точки останова и т.д.

6. Управление отладкой: во время отладки вы можете использовать различные команды управления, такие как «Step Into» (выполнить текущую строку кода и перейти к следующей), «Step Over» (выполнить текущую функцию и перейти к следующей), «Run» (продолжить выполнение программы до следующей точки останова или до ее завершения), «Stop» (остановить отладку) и т.д.

7. Просмотр результатов: после завершения отладки можно просмотреть результаты работы вашего кода. Keil uVision 5 предоставляет удобные инструменты для анализа значений переменных, запущенных процессов и других параметров.

В заключение можно сказать, что Keil uVision 5 обладает всеми необходимыми средствами для успешной разработки и отладки кода для микроконтроллеров STM32. С его помощью вы сможете создать надежные и эффективные программы для вашего проекта.

RTT in uVision

Generally if you want to use RTT in Keil all you need to do is add the RTT sources to your project as explained in the J-Link user manual. You can now use the RTT API directly in your application and send data back and forth between target and host PC.

Using syscalls like printf with RTT

If you want to retarget e.g. printf to use RTT, additional steps are necessary. First add also the corresponding syscalls file to your application.
Additionally enable STDOUT retargeting via the «Manage Run-Time Environment» button:

Now select STDOUT and set it to Variant User:

After that your project should build and you can use printf via RTT in your application. To display the messages you can use the J-Link RTT Viewer for example which is part of the J-Link software package.

RTT ASM support

Support for SEGGER_RTT_ASM_ARMv7M.S is available when using «armclang» as assembler. This option is only available when using ARM compiler 6 or later in Keil MDK-ARM.

Development Tools

There are several software development tools available for code development on STM32 microcontrollers.

The software tools are available as Integrated Development Environments (IDE) which combines all of the necessary tools into an integrated environment.

Two common development packages include:

  • Keil MDK ARM (uVison5 IDE) – The MDK ARM IDE is a very stable development environment which can be downloaded for free. It allows development of code up to a program size of 32 KB. For developing larger programs a licensed version needs to be purchased here.
  • STM32CubeIDE – Recommended for new STM32-only toolchains, this IDE straight from ST integrates their STM32CubeMX tool into a full-fledged Eclipse-based IDE. It can be downloaded for free here

There are also several other IDEs that are available for use with STM32 microcontrollers.

However, this article focuses on developing and flashing a program using the very popular Keil MDK ARM uVision5 IDE.

Apart from the software tools, an In-Circuit Serial Programmer (ICSP) is required to program and test the code on the actual microcontroller.

Programming the STM32 via the In-Circuit-Serial-Programmer (ICSP)

The ICSP is required to interface the microcontroller to the PC software tools via a USB port.

The ARM Cortex-M microcontrollers support two programming protocols: JTAG (named by the electronics industry association the Joint Test Action Group) and Serial Wire Debug (SWD).

There are several ICSP programmers available that support these protocols, including:

  • Keil U-Link 2
  • Segger J-Link
  • ST-Link

Servo with stm32 microcontroller

I am going to interface servo with stm32f103c8t6 microcontroller. I purchased a pre assembled and cheap board which mounts the microcontroller on it. For rotating the arm of servo motor three pins of microcontroller are used as input. For outputting pwm signal one pin is used. Port-A pins 0,1 and 2 are used as inputs and Port-B pin#6 is used to output the pwm signal.
Stm32f103 microcontroller works on 3.3 volts where as servo motor tower pro sg90 works on 5 volts. So both modules motor and microcontroller must be powered with different power sources. We can not drive servo directly with stm32 output pwm signal because its in 3.3v wave form and motor requires 5v. I inserted a circuit in between the two modules to converted 3.3v to 5v. First transistor is converting the input signal to output 5v but the signal is inverted. Another transistor inverts the inverted signal and brings it back to original logic. So now 3.3v at input cross-ponds to 5v at output to servo motor.

Servo motor controlled with Stm32f103 microcontroller

In the above circuit make sure to common the grounds of both motor and microcontroller power supply. You can also use ULN2003 IC here instead of the two transistors. ULN2003 contains the same circuit in it with fly wheeling diodes.  
In stm32cubemx initialize 3 pins Port-A pin 1,2 and 3 as input. If you do not know about how to do this then i have a simple tutorial for you on it.  

Stm32f103 pwm pin settings

I am going to output pwm signal on PB6. For this you have to do some settings in stm32cubemx ide. Like selecting the channel and configuring some other things. Before moving any forward i would like you to take a simple tutorial on pwm pin selection and duty cycle calculation formula. 

The above tutorial is very important to understand the code flow and settings below. Internal stm32 microcontroller oscillator is used in the project. Though the board has an external 8 MHz oscillator but i preferred to use internal. Final clock to timer 4 is 1 MHz.  

Stm32 clcok configuration for timer 4 channel 1 in stm32cubemx

Then i calculated the values for counter register and other values required to input in the timer-4 configuration. You can see the formula and other values calculations in the above tutorial.

Stm32 setting pwm counter period and duty cycle in stm32cubemx

My counter period is 1000. It means at 1000 the pwm duty cycle will be 100% with period 20 milli seconds or 50 Hz frequency. At 500 pwm duty cycle will be 50% which translates to 10 milli seconds. At 5% it will be 1 milli second and at 10% it will be 2 milli seconds and at 7.5% it will be 1.5 milli seconds.

This counter value is used in code to move the servo motor arm. Below is the code. When button-3 is pressed motor moves to 180 degrees. When button-2 is pressed button rotates to 90 degree and when button-1 is pressed it comes back to 0 degrees. 

Internal pull up resistors of pins Port-A Pin# 1,2 and 3 are activated. Hence only buttons are connected to ground directly. 

Download the project code. Code is written in keil uvision 5 ide. Stm32cubemx is used for microcontroller configuration. Code folder contains all keil and stm32cubemx files. Code is open source you can modify and use it according to your needs. Please provide us your feed back on the project.

Обзор продуктовых линеек

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

Серии STM32F-1, STM32F-2 и STM32L полностью совместимы. Каждая из серий имеет десятки микросхем, которые можно без труда поменять на другие изделия. STM32F-1 была первой линейкой, ее производительность была ограничена. Из-за этого по характеристикам контроллеры быстро догнали изделия семейства Stellaris и LPC17. Позднее была выпущена STM32F-2 с улучшенными характеристиками – тактовая частота достигала 120 МГц. Отличается высокой процессорной мощностью, которая достигнута благодаря новой технологии производства 90 нм. Линейка STM32L представлена моделями, которые изготовлены по специальному технологическому процессу. Утечки транзисторов минимальны, благодаря чему приборы показывают лучшие значения.

Важно отметить, что контроллеры линейки STM32W не имеют pin-to-pin совместимости с STM32F-1, STM32F-2 и STM32L. Причина заключается в том, что линейку разрабатывала компания, которая предоставила радиочастотную часть

Это наложило ограничения на разработку для компании ST.

Микросхема STM32F100R4 имеет минимальный набор функций. Объем флэш памяти составляет 16 Кбайт, ОЗУ – 4 Кбайт, тактовая частота составляет 12 МГц. Если требуется более быстрое устройство с увеличенным объемом флэш-памяти до 128 Кбайт, подойдет STM32F101RB. USB интерфейс имеется у изделия STM32F103RE. Существует аналогичное устройство, но с более низким потреблением – это STM32L151RB.

Понравилась статья? Поделиться с друзьями:
Technology trends
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: