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