Введение в STM32L432: обзор, технические характеристики, области применения и пример управления GPIO

Обзор STM32L432

STM32L432 — это микроконтроллер со сверхнизким энергопотреблением, разработанный компанией STMicroelectronics. Он основан на ядре ARM Cortex-M4 и предназначен для энергоэффективных встраиваемых систем. Сочетая в себе мощные вычислительные возможности и низкое энергопотребление, он идеально подходит для устройств IoT и портативных приложений.

Технические характеристики

Серия STM32L432 обладает следующими ключевыми техническими характеристиками:

  • Ядро процессора:

    • 32-разрядный RISC-процессор ARM Cortex-M4
    • Работает на частоте до 80 МГц с поддержкой одноциклового умножения и аппаратного деления
    • Встроенный блок с плавающей запятой (FPU) и инструкции цифровой обработки сигналов (DSP)
  • Память:

    • 256 КБ Flash (программируемая память на кристалле)
    • 64 КБ SRAM
    • Поддержка расширения внешней памяти
  • Функции низкого энергопотребления:

    • Несколько режимов низкого энергопотребления: сон, остановка и ожидание
    • Динамическое энергопотребление: всего 37 мкА/МГц при частоте 80 МГц
    • Ток в режиме остановки: примерно 250 нА
    • Широкий диапазон напряжений: от 1,8 В до 3,6 В со встроенным управлением питанием
  • Интерфейсы и периферийные устройства:

    • GPIO: до 51 универсальных вывода ввода/вывода
    • Коммуникационные интерфейсы: USART/UART, I2C, SPI, CAN, USB 2.0 (полная скорость)
    • Таймеры: универсальные, маломощные и расширенные таймеры (выход PWM)
    • ADC/DAC: 12-разрядный АЦП (16 каналов) и 12-разрядный ЦАП
    • Встроенный генератор и поддержка часов реального времени (RTC)
  • Варианты корпуса:

    • Доступен в различных корпусах (например, LQFP, UFBGA, WLCSP) для удовлетворения различных требований к размеру.

Применение

Благодаря низкому энергопотреблению и высокой производительности, STM32L432 широко используется в следующих областях:

  • Устройства IoT:

    • Системы «умного дома» (например, «умные» замки, датчики температуры и влажности)
    • Носимые устройства (например, фитнес-трекеры, оборудование для мониторинга здоровья)
  • Промышленное управление:

    • Системы сбора данных и управления
    • Умные счетчики и сенсорные узлы
  • Портативные устройства:

    • Устройства с батарейным питанием (например, портативные медицинские приборы)
    • Дисплеи с низким энергопотреблением (например, контроллеры экранов с электронными чернилами)
  • Потребительская электроника:

    • Игрушки и робототехника
    • Умные пульты дистанционного управления
  • Приложения для обеспечения безопасности и шифрования:

    • Аппаратная поддержка шифрования AES для безопасной связи

Преимущества

  • Низкое энергопотребление: идеально подходит для устройств с батарейным питанием, требующих длительного срока службы.
  • Экономичность: обеспечивает отличную производительность по конкурентоспособной цене.
  • Надежная экосистема разработки: поддерживается STM32CubeMX, STM32CubeIDE и комплексным набором библиотек и инструментов от ST.
  • Надежность: промышленный дизайн, высокая термостойкость и широкий диапазон рабочих напряжений.

Управление GPIO с помощью платы NUCLEO-L432KC

В этом примере мы познакомимся с принципами работы светодиодной схемы на плате STM32L432KC, создадим новый проект с помощью STM32CubeMX и освоим приемы программирования, позволяющие добиться мигания светодиода.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

Необходимые материалы

  • Разработка платы NUCLEO-L432KC
  • USB-кабель для питания и связи
  • Светодиод (если требуется внешний светодиод)
  • Резистор (например, 220 Ом для внешнего светодиода)
  • Программное обеспечение STM32CubeMX
  • Среда разработки, такая как MDK5 (Keil) или STM32CubeIDE

Шаг 1: Создание нового проекта с помощью STM32CubeMX

Сначала выберите микроконтроллер STM32L432KC и создайте новый проект STM32CubeMX.

Create a new project from MCU STM32L432KC
Create a new project from MCU STM32L432KC

Далее настроим генератор для STM32L432KC. Согласно схеме, внешний низкочастотный кварцевый генератор подключен к PC14 и PC15. Настроим эти GPIO в режиме «Кварцевый/керамический резонатор».

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

Объяснение режимов генератора:

BYPASS Источник тактовой частоты: микросхема обходит внутренний компонент, управляющий тактовой частотой, и напрямую использует внешний тактовый сигнал.

Кварцевый/керамический резонатор: использует внешний пассивный кварцевый резонатор в сочетании с внутренней схемой управления тактовой частотой микроконтроллера, обеспечивая более высокую точность, но требуя времени на запуск.

Настройте GPIO для светодиода. Установите PB3 в режим «GPIO_Output» со следующими параметрами:

  • Тяговый выход
  • Выход низкого уровня по умолчанию (светодиод изначально выключен)
  • Без подтягивающих или понижающих резисторов

Настройте тактовую частоту. Для упрощения задачи установите системную тактовую частоту на 80 МГц, что позволит STM32CubeMX автоматически настроить необходимые параметры.

Clock configuration 80 MHz
Clock configuration 80 MHz

Установите настройки генерации кода в интерфейсе проекта:

  • Назовите проект и выберите инструмент разработки (например, MDK5).
  • Включите опцию «Генерировать инициализацию периферийных устройств как…», чтобы создать отдельные .c файлы для периферийных устройств (например, GPIO, I2C, SPI).
STM32CubeMX project settings name location toolchain IDE
STM32CubeMX project settings (name, location, toolchain IDE)
Setting code generator on STM32CubeMX
Setting code generator on STM32CubeMX

После настройки всех параметров проекта мы можем сгенерировать проект. Если вы используете STM32CubeMX впервые, вам необходимо загрузить следующие пакеты программного обеспечения:

Download stm32cube software package
Download stm32cube software package

Далее, продолжайте генерацию кода, и после успешной генерации откройте папку проекта.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

Папка будет содержать файлы проектов STM32CubeMX и MDK5, что позволит удобно вносить изменения в STM32CubeMX. Теперь мы можем запустить проект «NUCLEO-L432KC(LED_Blinking)» в папке MDK-ARM.

STM32CubeMX project folder
STM32CubeMX project folder

Шаг 2: Напишите код для мигания светодиода

Найдите необходимые функции в файлах STM32 HAL:

  • HAL_GPIO_TogglePin() и HAL_GPIO_WritePin() в stm32l4xx_hal_def.h.
  • HAL_Delay() в stm32l4xx_hal.h.

Внедрите приведенный ниже код, чтобы светодиод мигал каждые 2 секунды:

Add led blinking code to main.c file
Add led blinking code to main.c file
				
					/* USER CODE BEGIN WHILE */
while (1)
{
  // Method 1: Using HAL_GPIO_TogglePin()
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
  HAL_Delay(2000);

  // Method 2: Using HAL_GPIO_WritePin()
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // Turn off for 2 seconds
  HAL_Delay(2000);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);   // Turn on for 2 seconds
  HAL_Delay(2000);
}
/* USER CODE END WHILE */

				
			

Скомпилируйте код и убедитесь, что в нем нет ошибок.

Rebuild all target files for project NUCLEO L432KCLED Blinking
Rebuild all target files for project NUCLEO-L432KC(LED_Blinking)

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

Плата NUCLEO-L432KC имеет встроенный отладчик и программатор STLINK/V2-1.

  • Настройте проект для использования ST-LINK для загрузки.
  • Установите параметры прошивки, как показано в интерфейсе STM32CubeMX, затем загрузите программу.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Шаг 4: Прошивка программы

Запишите скомпилированную программу на плату NUCLEO-L432KC и наблюдайте за миганием светодиода.

Download code to flash memory
Download code to flash memory

Поделиться:

Прокрутить вверх

Instant Quote