Это старая версия документа!
Щепа 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.
Arduino IDE
Для работы с платой в Arduino IDE нужно добавить ссылку для менеджера плат в меню Файл → Параметры в строку: Дополнительные ссылки для Менеджера плат:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
В менеджере плат установить библиотеку STM32 MCU based boards:
Выбрать режим загрузки скетча:
При необходимости подключить поддержку USB CDC - виртуальный com-порт:
Пример
//Светодиод на 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.ini добавить строку upload_protocol = dfu для загрузки прошивки через USB, при необходимости подключить поддержку USB CDC - виртуальный com-порт добавив build_flags = -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC -D USBCON :
[env:nucleo_l432kc] platform = ststm32 board = nucleo_l432kc framework = arduino upload_protocol = dfu build_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); }



