Uploaded by dmitry.tatarchuk

stm32-ru учебник

advertisement
stm32
#stm32
1
1:
stm32
2
2
STM32?
2
2
2
3
Examples
3
blink
3
IDE
3
4
blink
2: UART -
6
/ ()
10
10
Examples
3:
10
Echo - HAL
10
DMA - HAL
11
(IDE)
15
15
15
Examples
SW4STM32: System Workbench STM32
19
19
19
20
IAR-EWARM
20
20
21
Atollic - TrueSTUDIO
21
21
22
CoIDE
22
22
22
23
Около
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version
from: stm32
It is an unofficial and free stm32 ebook created for educational purposes. All the content is
extracted from Stack Overflow Documentation, which is written by many hardworking individuals at
Stack Overflow. It is neither affiliated with Stack Overflow nor official stm32.
The content is released under Creative Commons BY-SA, and the list of contributors to each
chapter are provided in the credits section at the end of this book. Images may be copyright of
their respective owners unless otherwise specified. All trademarks and registered trademarks are
the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor
accurate, please send your feedback and corrections to info@zzzprojects.com
https://riptutorial.com/ru/home
1
глава 1: Начало работы с stm32
замечания
В этом разделе представлен обзор того, что такое stm32, и почему разработчик может
захотеть его использовать.
Следует также упомянуть любые крупные темы в stm32 и ссылки на связанные темы.
Поскольку документация для stm32 является новой, вам может потребоваться создать
начальные версии этих связанных тем.
Что такое STM32?
STM32 - это 32-битное семейство микроконтроллеров Flash, разработанное ST
Microelectronics. Он основан на процессоре ARM® Cortex®-M и предлагает 32-битный
ассортимент продукции, который сочетает в себе очень высокую производительность,
возможности в реальном времени, обработку цифрового сигнала и маломощную работу с
низким напряжением.
Подробное описание каждой серии, средств разработки и декодирования номеров деталей
можно найти в Википедии .
Серия продуктов
Cortex-M0 / M0 +
Высокая
производительность:
CortexM3
CortexM4
Cortex-M7
STM32F2
STM32F4
STM32F7 ,
STM32H7
Основное направление:
STM32F0
STM32F1
STM32F3
Ультра-низкое
энергопотребление:
STM32L0
STM32L1
STM32L4
Платы развития
Типичный
STM32 Nucleo (с
поддержкой mbed )
Наборы для
обнаружения
Оценочные
платы
Гибкое
Прототипирование,
Полная оценка
https://riptutorial.com/ru/home
2
STM32 Nucleo (с
поддержкой mbed )
Наборы для
обнаружения
Оценочные
платы
вариант
использования:
прототипирование,
сообщество
творческие
демонстрации
возможностей
Возможности
расширения:
+++
++
++
Возможности
подключения:
Arduino ™, ST,
Morpho
ST
ST
Версии
Версия
Дата выхода
1.0.0
2016-11-01
Examples
Пример установки первого времени с использованием светодиодного
индикатора blink с использованием библиотек SW4STM32 и HAL
( Примечание. Существует много IDE, toolchain и библиотеки, которые готовы к
использованию с STM32. Следующая настройка требует минимальных усилий, чтобы
заставить ее работать, но она только одна из многих. Не стесняйтесь исследовать других,
это не цель этого примера - заставить кого-либо использовать инструменты, которые
будут использоваться здесь.)
Установка IDE
System Workbench для STM32 : бесплатная среда IDE для Windows, Linux и OS X. Она была
создана AC6 и доступна для скачивания после регистрации с сайта сообщества
OpenSTM32 .
Сама IDE основана на Eclipse, но поставляется с некоторыми дополнительными
возможностями для разработки STM32, например:
• Acch STM32 MCU GCC toolchain
• OpenOCD и GDB (arm-none-eabi-gdb) с автоматически созданной конфигурацией
отладки в зависимости от целевой платы
• Встроенные опции для программирования или стирания чипа
https://riptutorial.com/ru/home
3
Чтобы начать с STM32 перед созданием собственной платы, рекомендуется
поэкспериментировать с панелью Discovery , Nucleo или Eval , которая поставляется с
встроенным программным модулем / отладчиком SWD (Serial Wire Debug) под названием
ST-Link.
Создание проекта
В этом примере будет использоваться комплект обнаружения STM32F4 , в котором
имеется микроконтроллер STM32F407VG. (Также можно использовать любую другую
плату).
1. Откройте SW4STM32 и создайте новый проект C: Файл → Новый → Проект C
2. Дайте ему имя типа «STM32F4_Discovery-Blinky», а в списке « Тип проекта» выберите
проект « Исполняемый / Ac6 STM32 MCU» . По умолчанию единственной доступной
toolchain является Ac6 STM32 MCU GCC . Нажмите кнопку "Далее.
https://riptutorial.com/ru/home
4
3. Следующий шаг - параметры Debug / Release , которые можно пропустить, нажав
кнопку «Далее».
4. Выбор платы . Существующие платы можно выбрать, так как в этом примере можно
добавить STM32F4 Discovery или новые пользовательские платы.
5. Следующий шаг - настройка прошивки проекта . Выберите между прошивкой ,
стандартной периферийной библиотекой (SPL) или аппаратным абстракционным
слоем (HAL). Допрашивается, какой из них более подходит для развития, но этот
вопрос выходит за рамки данного примера. В этом примере будет использоваться
библиотека HAL, поскольку она в настоящее время поддерживается ST
Microelectronics. Дополнительным доступным программным инструментом для HAL
является STM32CubeMX , который является генератором кода инициализации. Также
некоторые программные приложения доступны в пакетах STM32CubeFx или
STM32CubeLx. Загрузите целевую микропрограмму, если она отсутствует, и
https://riptutorial.com/ru/home
5
рекомендуется выбрать «Добавить драйверы низкого уровня в проекте» и «Как
источники в приложении» . Наконец, нажмите «Готово».
Применение светодиодного индикатора blink
Поскольку этот проект был создан с помощью STM32F4 Discovery, уже есть несколько
готовых к использованию функций в папке / STM32F4_Discovery-Blinky / Utilities /
STM32F4-Discovery / project, которая может использоваться для интерфейса
периферийных устройств набора Discovery (акселерометр, аудио , Светодиоды, кнопка). В
этом примере void BSP_LED_Init(Led_TypeDef Led) и функции void BSP_LED_Toggle(Led_TypeDef
Led) будут использоваться из файла stm32f4_discovery.c для мигания зеленого светодиода,
который является LED4 . Чтобы определить, какой светодиод используется схемой набора
Discovery .
https://riptutorial.com/ru/home
6
Фактические имена контактов и портов уже скрыты некоторыми #define и enum ,
используйте Ctrl + Click, чтобы отслеживать их.
1. Внутри main вызова HAL_Init() функцию HAL_Init() которая сбрасывает все
периферийные устройства, инициализирует интерфейс Flash и Systick. (Systick будет
использоваться для генерации задержки для мигания.)
2. Системные часы должны быть настроены. Это можно сделать, используя функцию
конфигурации часов STM32CubeMX или справочное руководство. В этом примере
системные часы подаются внутренним PLL (Phase Locked Loop), который подается
внешним кварцевым генератором 8 МГц (HSE). Предделители были настроены на
достижение максимальной доступной частоты, которая составляет 168 МГц в случае
обнаружения F4.
3. Инициализация периферийных устройств, в данном случае штырь GPIO.
4. В бесконечном цикле вызовите переключатель LED и HAL_Delay() . HAL_Delay()
использует Systick и генерирует задержку в миллисекундах.
Весь код следующий:
#include "stm32f4xx.h"
#include "stm32f4_discovery.h"
void SystemClock_Config(void);
int main(void)
{
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize one of the LED GPIO pin */
BSP_LED_Init(LED4);
while(1)
{
BSP_LED_Toggle(LED4);
HAL_Delay(1000);
https://riptutorial.com/ru/home
// in miliseconds
7
}
}
/**
* @brief System Clock Configuration
*
The system Clock is configured as
*
System Clock source
*
SYSCLK(Hz)
*
HCLK(Hz)
*
AHB Prescaler
*
APB1 Prescaler
*
APB2 Prescaler
*
HSE Frequency(Hz)
*
PLL_M
*
PLL_N
*
PLL_P
*
PLL_Q
*
VDD(V)
*
Main regulator output voltage
*
Flash Latency(WS)
* @param None
* @retval None
*/
void SystemClock_Config(void)
{
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;
follow :
= PLL (HSE)
= 168000000
= 168000000
= 1
= 4
= 2
= HSE_VALUE
= (HSE_VALUE/1000000u)
= 336
= 2
= 7
= 3.3
= Scale1 mode
= 5
// Enable Power Control clock
__PWR_CLK_ENABLE();
// The voltage scaling allows optimizing the power consumption when the
// device is clocked below the maximum system frequency, to update the
// voltage scaling value regarding system frequency refer to product
// datasheet.
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
// Enable HSE Oscillator and activate PLL with HSE as source
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
// This assumes the HSE_VALUE is a multiple of 1MHz. If this is not
// your case, you have to recompute these PLL constants.
RCC_OscInitStruct.PLL.PLLM = (HSE_VALUE/1000000u);
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
// Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
// clocks dividers
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
}
https://riptutorial.com/ru/home
8
Построить с помощью молотка
, и загрузите приложение, щелкнув правой кнопкой
мыши по папке проекта и выбрав опцию Target → Program chip ....
Другой способ загрузки - использование отладки . Чтобы сделать это, нажмите на стрелку
рядом с значком ошибки.
в панели инструментов и откройте меню « Конфигурация
отладки ...» . Создайте новую конфигурацию отладки Ac6 STM32 и, если поле
приложения C / C ++ пусто, заполните следующую команду:
Debug \ STM32F4_Discovery-Blinky.elf
Другие параметры отладки, такие как файл конфигурации OpenOCD и используемые
порты Telnet и GDB, автоматически генерируются и заполняются каркасом. Наконец,
нажмите кнопку «Отладка».
Прочитайте Начало работы с stm32 онлайн: https://riptutorial.com/ru/stm32/topic/7617/началоработы-с-stm32
https://riptutorial.com/ru/home
9
глава 2: UART - универсальный
асинхронный приемник / передатчик
(последовательная связь)
Вступление
Эта тема посвящена последовательной связи с использованием периферийного
устройства универсального асинхронного приемника / передатчика (UART)
микроконтроллеров STM32.
Examples
Приложение Echo - библиотека HAL
В этом примере микроконтроллер эхо возвращает полученные байты отправителю с
использованием прерывания UART RX.
#include "stm32f4xx.h"
UART_HandleTypeDef huart2;
/* Single byte to store input */
uint8_t byte;
void SystemClock_Config(void);
/* UART2 Interrupt Service Routine */
void USART2_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart2);
}
/* This callback is called by the HAL_UART_IRQHandler when the given number of bytes are
received */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if (huart->Instance == USART2)
{
/* Transmit one byte with 100 ms timeout */
HAL_UART_Transmit(&huart2, &byte, 1, 100);
/* Receive one byte in interrupt mode */
HAL_UART_Receive_IT(&huart2, &byte, 1);
}
}
void uart_gpio_init()
{
GPIO_InitTypeDef GPIO_InitStruct;
https://riptutorial.com/ru/home
10
__GPIOA_CLK_ENABLE();
/**USART2 GPIO Configuration
PA2
------> USART2_TX
PA3
------> USART2_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void uart_init()
{
__USART2_CLK_ENABLE();
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
HAL_UART_Init(&huart2);
/* Peripheral interrupt init*/
HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART2_IRQn);
}
int main(void)
{
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
uart_gpio_init();
uart_init();
HAL_UART_Receive_IT(&huart2, &byte, 1);
while(1)
{
}
}
В этом примере использовались STM32F4 Discovery (STM32F407VG), GPIO и
альтернативные значения функций, которые должны быть изменены в соответствии с
используемым микроконтроллером STM32.
Передача большого объема данных с использованием DMA и
прерываний - Библиотека HAL
В этом примере 2000 байтов будут переданы с использованием DMA, Transmit Half
https://riptutorial.com/ru/home
11
Complete и Transmit Complete прерываний, обеспечивающих наилучшую
производительность.
Первая половина буфера передачи загружается с помощью новых данных CPU в обратном
вызове Transmit Half Complete interrupt, в то время как вторая половина буфера
передается DMA в фоновом режиме.
Затем в Transmit Complete вторая половина буфера передачи загружается новыми
данными CPU, а первая половина (ранее обновленная) передается DMA в фоновом
режиме.
#include "stm32f4xx.h"
uint8_t dma_buffer[2000];
volatile uint8_t toggle = 0;
UART_HandleTypeDef huart2;
DMA_HandleTypeDef hdma_usart2_tx;
void uart_gpio_init()
{
GPIO_InitTypeDef GPIO_InitStruct;
__GPIOA_CLK_ENABLE();
/**USART2 GPIO Configuration
PA2
------> USART2_TX
PA3
------> USART2_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void uart_dma_init()
{
/* DMA controller clock enable */
__DMA1_CLK_ENABLE();
/* Peripheral DMA init*/
hdma_usart2_tx.Instance = DMA1_Stream6;
hdma_usart2_tx.Init.Channel = DMA_CHANNEL_4;
hdma_usart2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_usart2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart2_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart2_tx.Init.PeriphDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart2_tx.Init.Mode = DMA_NORMAL;
hdma_usart2_tx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart2_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
HAL_DMA_Init(&hdma_usart2_tx);
__HAL_LINKDMA(&huart2,hdmatx,hdma_usart2_tx);
https://riptutorial.com/ru/home
12
/* DMA interrupt init */
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
}
void uart_init()
{
__USART2_CLK_ENABLE();
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
HAL_UART_Init(&huart2);
/* Peripheral interrupt init*/
HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART2_IRQn);
}
/* This function handles DMA1 stream6 global interrupt. */
void DMA1_Stream6_IRQHandler(void)
{
HAL_DMA_IRQHandler(&hdma_usart2_tx);
}
void USART2_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart2);
}
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
uint16_t i;
toggle = !toggle;
for(i = 1000; i < 1998; i++)
{
if(toggle)
dma_buffer[i] = '&';
else
dma_buffer[i] = 'z';
}
dma_buffer[1998] = '\r';
dma_buffer[1999] = '\n';
}
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
{
uint16_t i;
for(i = 0; i < 1000; i++)
{
if(toggle)
dma_buffer[i] = 'y';
else
https://riptutorial.com/ru/home
13
dma_buffer[i] = '|';
}
}
int main(void)
{
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
uart_gpio_init();
uart_dma_init();
uart_init();
uint16_t i;
for(i = 0; i < 1998; i++)
{
dma_buffer[i] = 'x';
}
dma_buffer[1998] = '\r';
dma_buffer[1999] = '\n';
while(1)
{
HAL_UART_Transmit_DMA(&huart2, dma_buffer, 2000);
}
}
Пример был написан для платы обнаружения STM32F4 (STM32F407VG). Соответствующий
экземпляр DMA, канал UART-DMA, параметры GPIO и альтернативные функции должны
быть изменены в соответствии с используемым микроконтроллером STM32.
Прочитайте UART - универсальный асинхронный приемник / передатчик
(последовательная связь) онлайн: https://riptutorial.com/ru/stm32/topic/9707/uart--универсальный-асинхронный-приемник---передатчик--последовательная-связь-
https://riptutorial.com/ru/home
14
глава 3: Интегрированные среды
разработки (IDE)
Вступление
Цель этой темы - перечислить все интегрированные среды разработки (IDE), которые могут
быть использованы для разработки программного обеспечения для микроконтроллеров
STM32. Примеры должны содержать: 1. Список основных функций среды IDE. 2. Список
операционных систем, поддерживаемых IDE. 3. Процесс установки. 4. Дополнительные
шаги настройки (если они есть).
замечания
Перечисленные IDE от ST Microelectronics:
номер части
Общее описание
CoIDE
CooCox CoIDE бесплатная и
высокоинтегрированная
среда разработки
программного
обеспечения для MCU
ARM Cortex
CosmicIDE
Cosmic ARM / Cortex
«M» Инструменты для
кросс-разработки для
микроконтроллера
STM32
Crossworks
Rowley Associates
CrossWorks,
интегрированная среда
разработки с загрузкой
и отладкой JTAG Flash
DS-5
ARM Development
Studio 5 (DS-5)
https://riptutorial.com/ru/home
поставщик
Тип
программного
обеспечения
CooCox
Комплекты
для
разработки
ПО
космический
Комплекты
для
разработки
ПО
активный
Rowley
Комплекты
для
разработки
ПО
активный
РУКА
Комплекты
для
Маркетинговый
статус
активный
активный
15
номер части
Общее описание
Маркетинговый
статус
поставщик
предоставляет лучшие
в своем классе
инструменты для самых
разных платформ на
базе процессоров ARM
EMP-Thunder
Emprog ThunderBench,
полностью
интегрированный и
хорошо продуманный
инструмент разработки
C / C ++ для ARM Cortex
HiTOP5
Универсальный
пользовательский
интерфейс, IDE и
отладчик для всех
инструментов
разработки Hitex
IAR-EWARM
Интегрированная среда
разработки IAR и
оптимизация
компилятора C / C ++
для ARM Cortex-M
MDK-ARMSTM32
Среда разработки
программного
обеспечения MDK-ARM
для MCU на базе
Cortex-M
Тип
программного
обеспечения
разработки
ПО
Emprog
Прошивка
Hitex
Комплекты
для
разработки
ПО
IAR
Комплекты
для
разработки
ПО
активный
Keil
Комплекты
для
разработки
ПО
MULTI
Интегрированная среда
разработки и отладки
GreenHills для
встроенных
приложений с
использованием C и C
++
активный
Программное
обеспечение
GreenHills
Комплекты
для
разработки
ПО
Мужчины-
Nucleus SmartFit для
активный
Mentor
Прошивка
https://riptutorial.com/ru/home
активный
активный
активный
16
номер части
Общее описание
Nucleus-SF
STM32
PER-Tracealyzer
Анализатор
трассировки времени
выполнения Percepio
для MCM STM32
PLSUDE-STM32
Платформа отладки и
эмулятора с
оптимизированной
поддержкой
трассировки и флэшпамяти для MCM
STM32 на базе Cortex-M
с помощью средств
разработки PLS
RIDE-STM32
Интегрированная среда
разработки, основанная
на безопасности, для
MCU STM32
Маркетинговый
статус
поставщик
Тип
программного
обеспечения
Graphics
активный
активный
активный
Percepio
Pls
Комплекты
для
разработки
ПО
Raisonance
Комплекты
для
разработки
ПО
Somnium
Комплекты
для
разработки
ПО
SOMN-DRT-IDE
SOMNIUM DRT CortexM IDE
SW4STM32
System Workbench для
STM32: бесплатная
среда разработки в
Windows, Linux и OS X
активный
AC6
Комплекты
для
разработки
ПО
TASKINGVXSTM32
Инструменты
компилятора Altium C /
C ++ и отладчика для
MCU на базе ARM
активный
TASKING
Прошивка
TrueSTUDIO
Прежний инструмент
разработки C / C ++ для
разработки STM32 с
непревзойденным
Atollic
Комплекты
для
разработки
ПО
https://riptutorial.com/ru/home
активный
активный
17
номер части
Общее описание
Маркетинговый
статус
поставщик
Тип
программного
обеспечения
iSYSTEM
Комплекты
для
разработки
ПО
Mikroelectronika
Комплекты
для
разработки
ПО
Mikroelectronika
Комплекты
для
разработки
ПО
Mikroelectronika
Комплекты
для
разработки
ПО
набором функций и
беспрецедентной
интеграцией
ISYSwinIDEAOpen
бесплатная
неограниченная
платформа разработки
iSYSTEM для всех
устройств STM32
Cortex-M
mikroBasicPRO
MikroElektronika
полнофункциональный
базовый компилятор,
который делает
разработку STM32
подходящей для всех
mikroCPRO
MikroElektronika
полнофункциональный
ANSI C-компилятор для
устройств STM32. Он
имеет интуитивно
понятный IDE, мощный
компилятор с
расширенной
оптимизацией
mikroPascalPRO
MikroElektronika
полнофункциональный
компилятор Pascal для
устройств STM32. Он
имеет интуитивно
понятную IDE с
поддержкой стыковки,
богатую функциями,
расширенным
текстовым редактором,
множеством доступных
инструментов,
библиотек и примеров
https://riptutorial.com/ru/home
активный
активный
активный
активный
18
номер части
Общее описание
Маркетинговый
статус
winIDEA-STM32
Комплексное решение
для разработки и
тестирования iSYSTEM
для MCU STM32
активный
поставщик
Тип
программного
обеспечения
iSYSTEM
Прошивка
Examples
SW4STM32: System Workbench для STM32
Вступление
System Workbench для STM32 - это бесплатная среда разработки в Windows, Linux и OS X.
Описание от ST Microelectronics :
Инструментальная цепочка System Workbench, называемая SW4STM32,
представляет собой бесплатную среду разработки программного обеспечения
для нескольких ОС на базе Eclipse, которая поддерживает весь спектр
микроконтроллеров STM32 и связанных плат.
Инструментарий SW4STM32 можно получить на веб-сайте www.openstm32.org,
который включает в себя форумы, блоги и тренинги для технической
поддержки. После регистрации на этом сайте пользователи получат инструкции
по установке на странице Documentation> System Workbench, чтобы продолжить
загрузку бесплатной инструментальной цепочки.
Инструментальная привязка System Workbench и ее сайт совместной работы
были созданы AC6, сервисной компанией, предоставляющей обучение и
консультации по встроенным системам.
Этот продукт поставляется третьей стороной, не связанной с ST. Последнюю
информацию о спецификации см. На веб-сайте третьей стороны: www.ac6.fr.
Ключевая особенность
• Всесторонняя поддержка микроконтроллеров STM32, плат STM32 Nucleo,
наборов Discovery и оценочных плат, а также прошивки STM32 (
стандартная периферийная библиотека или STM32Cube HAL)
• Компилятор GCC C / C ++
• Отладчик на основе GDB
• Eclipse IDE с управлением коллективной работой
https://riptutorial.com/ru/home
19
•
•
•
•
Совместимость с плагинами Eclipse
Поддержка ST-LINK
Нет ограничения размера кода
Поддержка нескольких ОС: Windows®, Linux и OS X®
Монтаж
1. Перейдите по ссылке : http://www.openstm32.org/HomePage .
2. Зарегистрируйтесь и войдите на сайт.
3. Перейдите на страницу:
http://www.openstm32.org/Downloading+the+System+Workbench+for+STM32+installer .
4. Загрузите последнюю версию для вашей операционной системы.
5. Запустите загруженный установщик.
IAR-EWARM
Вступление
IAR Интегрированная среда разработки и оптимизация компилятора C / C ++ для ARM
Cortex-M. Описание от ST Microelectronics :
IAR-EWARM - это комплект для разработки программного обеспечения,
поставляемый с готовыми конфигурационными файлами устройств, флешзагрузчиками и 4300 примерами проектов. IAR Embedded Workbench совместим с
другими совместимыми с ARM®EABI компиляторами и поддерживает следующие
ARM®cores для STM32:
Ключевая особенность
1. Ключевые компоненты:
• Интегрированная среда разработки с инструментами управления
проектами и редактором
• Высоко оптимизирующий компилятор C и C ++ для ARM®
• Автоматическая проверка правил MISRA C (MISRA C: 2004)
• Соответствие ARM® EABI и CMSIS
• Расширенная поддержка целевой системы HW
• Дополнительные I-jet и JTAGjet ™ -Trace внутрисхемные отладочные
датчики
• Отладка мощности для визуализации потребления энергии в
корреляции с исходным кодом
• Библиотеки времени выполнения, включая исходный код
• Перемещение ARM® ассемблера
• Линкеровщик и библиотекарь
https://riptutorial.com/ru/home
20
• Отладчик C-SPY® с симулятором ARM®, поддержка JTAG и
поддержка отладки RTOS для аппаратного обеспечения
• Плагины RTOS, доступные от IAR Systems и поставщиков RTOS
• Более 3100 типовых проектов для оценочных плат от разных
производителей
• Пользовательские и справочные руководства в формате PDF
• Контекстно-зависимая он-лайн помощь
2. Чип-специфическая поддержка:
• 4300 проектов, в том числе для оценочных плат STMicroelectronics
• Поддержка 4 Гбайт-приложений в режимах ARM® и Thumb®
• Каждая функция может быть скомпилирована в режиме ARM® или
Thumb®
• Генерация копроцессора с векторной плавающей точкой VFP Vector
Floating Point
• Встроенная поддержка NEON ™
3. Поддержка аппаратной отладки:
• STMicroelectronics ST-LINK V2: поддерживает устройства STM32
• STMicroelectronics ST-LINK: поддерживает устройства STM32
4. Поддержка RTOS: обратитесь на веб-сайт IAR http://www.iar.com
5. Поддерживаемые устройства: обратитесь на веб-сайт IAR
http://www.iar.com
Монтаж
Atollic - TrueSTUDIO
Вступление
C / C ++ IDE для разработки ARM.
Atollic TrueSTUDIO® протестирован и проверен в следующих операционных системах:
•
•
•
•
•
•
•
•
Microsoft® Windows®Vista (32-разрядная версия)
Microsoft® Windows® Vista (64-разрядная версия)
Microsoft® Windows® 7 (32-разрядная версия)
Microsoft® Windows® 7 (64-разрядная версия)
Microsoft® Windows® 8 (64-разрядная версия)
Microsoft® Windows® 10 (64-разрядная версия)
Поддержка Linux ожидается конец 2016 года Q4
Поддержка Mac OS X ожидается 2017 Q2
TrueSTUDIO доступен только как 32-битное приложение.
https://riptutorial.com/ru/home
21
Монтаж
Продукт Atollic TrueSTUDIO поставляется в качестве исполняемого установщика.
Убедитесь, что учетная запись пользователя, с которой запущен установщик,
имеет административные привилегии. Во время установки нет необходимости в
регистрации или подключении к Интернету. Когда TrueSTUDIO установлен, он
будет работать в режиме Lite, если лицензии не обнаружены.
1. Перейдите по ссылке : http://atollic.com/resources/downloads/ .
2. Загрузите последнюю стабильную или последнюю бета-версию.
3. Запустите программу установки.
CoIDE
Вступление
CooCox CoIDE - бесплатная и высокоинтегрированная среда разработки программного
обеспечения для MCU ARM Cortex. Описание от ST Microelectronics :
CoIDE - это среда разработки программного обеспечения, основанная на
инструментальной цепочке Eclipse и GCC, которая была настроена и упрощена,
чтобы предоставить пользователям легкий доступ к микроконтроллерам ARM®
Cortex®-M.
Этот продукт поставляется третьей стороной, не связанной с ST. Для получения
полной и последней информации о спецификации и пакетах приобретенных
деталей см. Веб-сайт третьей стороны www.coocox.org.
Ключевая особенность
• Полная поддержка микроконтроллеров STM32, плат STM32 Nucleo, а
также программных библиотек STM32Cube.
• Компилятор GCC C / C ++.
• Отладчик на основе GDB.
• Упрощенная среда разработки Eclipse.
• Поддержка ST-Link.
• Поддержка нескольких языков: английский, китайский.
Монтаж
Прочитайте Интегрированные среды разработки (IDE) онлайн:
https://riptutorial.com/ru/stm32/topic/7741/интегрированные-среды-разработки--ide-
https://riptutorial.com/ru/home
22
кредиты
S.
No
Главы
Contributors
1
Начало работы с
stm32
Bence Kaulics, Community
2
UART универсальный
асинхронный
приемник /
передатчик
(последовательная
связь)
Bence Kaulics
3
Интегрированные
среды разработки
(IDE)
Bence Kaulics
https://riptutorial.com/ru/home
23
Download