Keil uVision5 – IDE для STM32
Keil - Keil uVision5
Встановлення і налаштування Keil. Створення першого проекту. Офіційний сайт: http://www.keil.com/ Комерційна IDE для мікроконтролерів STM32. У безкоштовному варіанті має обмеження за обсягом програми до 32Кб. Завантажити можна з офіційного сайту.
Встановлення і налаштування Keil
Завантажуємо Keil з офіційного сайту і встановлюємо. Під час інсталляції Keil, має встановитися драйвер для St-Link програматора. Я встановлював версію Keil 5.13. На мою стареньку Windows XP, остання на цей час, версія Keil 5.22 встановлюватися не захотіла.
PackInstaller
Після встановлення запускаємо Keil і кнопкою на панелі інструментів відкриваємо PackInstaller.Праворуч на вкладці Devices знаходимо наш контролер. У моєму випадку це STM32F103C8, після чого у вкладці Packs зліва по черзі інсталюємо всі пакети.
Після того, як встановимо всі пакети, закриваємо PackInstaller і створюємо проект за допомогою меню Project -> New mVision Project...
Оибираємо папку та ім`я проекту.
Після чого буде запропоновано вказати мікроконтролер.
Далі з`явиться вікно, у якому потрібно обрати компоненти які будуть використовуватися у проекті.
Обов`язково обрати:
- CMSIS-CORE - підтримка основного ядра ARM
- System Startup - основний конфігураційний системний файл
- Standard Peripherals Drivers Framework - стандартні драйвери периферії
- GPIO - управління ногами мікроконтролера
- RCC - управління тактуванням периферії
Тепер створюємо основний файл програми. Правою кнопкою миші натискаємо на Sourcegroup 1, далі Add New Irem to Group Source Group 1...
Вказуємо тип та ім`я файлу:
Після чого буде створено і відкрито файл main.c. Наберіть в ньому наступний код програми:
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
int main(void)
{
int i;
/* Initialize Leds mounted on STM32 board */
GPIO_InitTypeDef GPIO_InitStructure;
/* Initialize LED which connected to PC13, Enable the Clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
/* Configure the GPIO_LED pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
while (1)
{
/* Toggle LED which connected to PC13*/
GPIOC->ODR ^= GPIO_Pin_13;
/* delay */
for(i=0;i<0x100000;i++);
}
}
Перед тим як компілювати програму потрібно зробити деякі налаштуваня проекту. Натискаємо на 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
Доброго дня, використовую Keil uVision 5.23. Якщо вказати рекомендований Вами параметр USE_STDPERIPH_DRIVER, STM32F10X_CL, То Видає 6 помилок та 6 попереджень (зауважень). Без нього - жодних попереджень та помилок. Можете підсказати, чому так? Лог компіляції: *** Using Compiler `V5.06 update 4 (build 422)`, folder: `C:\\Keil_v5\\ARM\\ARMCC\\Bin` Rebuild target `Target 1` assembling startup_stm32f10x_md.s... compiling main.c... C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(433): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(477): warning: #12-D: parsing restarts here after previous syntax error } IRQn_Type; main.c: 1 warning, 1 error compiling system_stm32f10x.c... C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(433): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(477): warning: #12-D: parsing restarts here after previous syntax error } IRQn_Type; RTE\\Device\\STM32F103C8\\system_stm32f10x.c: 1 warning, 1 error compiling misc.c... C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(433): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(477): warning: #12-D: parsing restarts here after previous syntax error } IRQn_Type; C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\StdPeriph_Driver\\src\\misc.c: 1 warning, 1 error compiling stm32f10x_rcc.c... C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(433): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(477): warning: #12-D: parsing restarts here after previous syntax error } IRQn_Type; C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\StdPeriph_Driver\\src\\stm32f10x_rcc.c: 1 warning, 1 error compiling stm32f10x_gpio.c... C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(433): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(477): warning: #12-D: parsing restarts here after previous syntax error } IRQn_Type; C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\StdPeriph_Driver\\src\\stm32f10x_gpio.c: 1 warning, 1 error compiling GPIO_STM32F10x.c... C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(433): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */ C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\Device\\Include\\stm32f10x.h(477): warning: #12-D: parsing restarts here after previous syntax error } IRQn_Type; C:\\Keil_v5\\ARM\\PACK\\Keil\\STM32F1xx_DFP\\2.1.0\\RTE_Driver\\GPIO_STM32F10x.c: 1 warning, 1 error ".\\Objects\\Tester.axf" - 6 Error(s), 6 Warning(s). Target not created. Build Time Elapsed: 00:00:01
До речі, без цього параметра прошивка: - компілюється - завантажується до мікроконтроллера (через перехідник на CH431) - працює на мікроконтролері (пробував змінювати час затримки між блиманням світлодіода і працювало) Схоже, що в останній версії (5.23) цей параметр (USE_STDPERIPH_DRIVER, STM32F10X_CL) став не потрібним. П.С. Дякую за цикл уроків. Починаю освоювати STM. Давно хотів злізти з Arduino.
Должно быть не STM32F10X_CL, а STM32F10X_MD, как и указано у вас на рисунке. Спасибо.
Недавні записи
- FOC - своя реалізація векторного керування. Підбиваю підсумки 2022 року
- Конструктор регуляторів моторів. Підбиваю підсумки 2022 року.
- Чому трифазні мотори стали такими популярними?
- FOC & Polar coordinates
- Конструктор регуляторів PMSM, BLDC двигунів
- Своя бібліотека для векторного керування безколекторними моторами
- Not Allowed
- Адаптивний ПІД регулятор
- Конструктор регуляторів моторів. Структура.
- Конструктор регуляторів моторів. Анонс.
Tags
st-link 3d-printer encoder servo solar java-script git wifi uart mpu-9250 sensors capture motor esp8266 nodemcu usb usart piezo rfid css atmega bmp280 bkp avr displays brushless watchdog battery sms rs-232 tim mpu-6050 barometer examples nvic pmsm dc-dc eb-500 soldering meteo rtc gpio books websocket docker dht11 led smd stm32 web timer dma lcd mpx4115a hih-4000 bldc ssd1306 adc mongodb python options eeprom raspberry-pi remap max1674 programmator ethernet foc ngnix ssd1331 gps flash exti bluetooth html bme280 i2c pwm flask
Архіви