Щепа L432
Характеристики
Заголовок раздела «Характеристики»- Микроконтроллер: STM32L432KCU6
- Ядро: Arm Cortex-M4
- Частота ядра: 80 MHz
- Флэш память : 256 Кбайт
- ОЗУ: 64 Кбайт
- Напряжение питания: 1.65 V - 3.6 V
- Таймеры (4)
- SPI/I2S (2)
- I2C (2)
- USART (2)
- 12-bit АЦП, 10 каналов (1)
- GPIO (20)
- RTC
- USB Device (Type C)
- Выход для подключения отладчика
- Пользовательская кнопка (можно использовать для перехода в режим загрузчика)
Описание
Заголовок раздела «Описание»Совместимость по выходам с NUCLEO-L432KC, USB подключен к микроконтроллеру (GPIO: PA11/PA12) для работы в режиме USB Device или встроенного загрузчика DFU. Для перехода в режим DFU нужно включить питание платы либо активировать RESET с нажатой кнопкой SW1. Для быстрого перехода в режим загрузчика можно активировать прерывание по выводу PH3 (к нему подключена пользовательская кнопка) для этого нужно в функцию void setup() вставить код:
//Включение тактирования порта GPIOH __HAL_RCC_GPIOH_CLK_ENABLE(); //подключение прерывания для вывода PH3, для активации RESET по нажатию кнопки stm32_interrupt_enable(GPIOH, LL_GPIO_PIN_3, NVIC_SystemReset, GPIO_MODE_IT_RISING);Щепу L432 можно превратить в SWD/JTAG-отладчик: прошивка отладчика Лобзик работает на ней без изменений.
Arduino IDE
Заголовок раздела «Arduino IDE»Для работы с платой в Arduino IDE нужно добавить ссылку для менеджера плат в меню Файл -> Параметры в строку: Дополнительные ссылки для Менеджера плат:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
В менеджере плат установить библиотеку STM32 MCU based boards:

Выбрать целевую плату

Выбрать режим загрузки скетча

При необходимости подключить поддержку USB CDC - виртуальный com-порт:

Для прошивки контроллера понадобится STM32CubeProgrammer без VPN
//Светодиод на D13#define LED 13
void setup() { //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU) //Включение тактирования порта GPIOH __HAL_RCC_GPIOH_CLK_ENABLE(); //переключение вывода PH3 в режим входа LL_GPIO_SetPinMode(GPIOH, LL_GPIO_PIN_3, LL_GPIO_MODE_INPUT);
pinMode(LED, OUTPUT); // Запуск USB Device в режиме CDC (виртуальный COM-порт) SerialUSB.begin();}
bool led = false;int i = 0;void loop() { // проверка нажата ли кнопка if (LL_GPIO_IsInputPinSet(GPIOH, LL_GPIO_PIN_3)) { //перезагрузка микроконтроллера NVIC_SystemReset(); }
if (led) { led = false; digitalWrite(LED, HIGH); } else { led = true; digitalWrite(LED, LOW); } delay(250); i++; Serial.print(i);}PlatformIO VSCode
Заголовок раздела «PlatformIO VSCode»Для работы с платой в среде VSCode нужно установить расширение PlatformIO.
Создать новый проект, выбрать целевую плату и фреймворк:

В файле platformio.ini добавить строку upload_protocol = dfu для загрузки прошивки через USB, при необходимости подключить поддержку USB CDC - виртуальный com-порт добавив build_flags = -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC -D USBCON :
[env:nucleo_l432kc]platform = ststm32board = nucleo_l432kcframework = arduinoupload_protocol = dfubuild_flags = -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC -D USBCON#include <Arduino.h>
//Светодиод на D13#define LED 13
void setup() { //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU) //Включение тактирования порта GPIOH __HAL_RCC_GPIOH_CLK_ENABLE(); //переключение вывода PH3 в режим входа LL_GPIO_SetPinMode(GPIOH, LL_GPIO_PIN_3, LL_GPIO_MODE_INPUT);
pinMode(LED, OUTPUT); // Запуск USB Device в режиме CDC (виртуальный COM-порт) SerialUSB.begin();}
bool led = false;int i = 0;void loop() { // проверка нажата ли кнопка if (LL_GPIO_IsInputPinSet(GPIOH, LL_GPIO_PIN_3)) { //перезагрузка микроконтроллера NVIC_SystemReset(); }
if (led) { led = false; digitalWrite(LED, HIGH); } else { led = true; digitalWrite(LED, LOW); } delay(250); i++; Serial.print(i);}