Содержание

Щепа F042

Характеристики

Описание

Совместимость по выходам с NUCLEO-F042K6, USB подключен к микроконтроллеру (GPIO: PA11/PA12) для работы в режиме USB Device или встроенного загрузчика DFU. Для перехода в режим DFU нужно включить питание платы либо активировать RESET с нажатой кнопкой SW1. Для быстрого перехода в режим загрузчика можно активировать прерывание по выводу PB6(D5) (к нему подключена пользовательская кнопка) для этого нужно в функцию void setup() вставить код:

  pinMode(5, INPUT);
  attachInterrupt(5, NVIC_SystemReset, RISING);

Github - схемы и примеры

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
 
//Кнопка на D5
#define BUTTON 5
 
void setup() {
  //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU)
  pinMode(BUTTON, INPUT);
 
  pinMode(LED, OUTPUT);
  // Запуск USB Device в режиме CDC (виртуальный COM-порт)
  SerialUSB.begin();
}
 
bool led = false;
int i = 0;
void loop() {
  // проверка нажата ли кнопка
  if (digitalRead(BUTTON) == HIGH) {
    //перезагрузка микроконтроллера
    NVIC_SystemReset();
  }
 
  if (led) {
    led = false;
    digitalWrite(LED, HIGH);
  } else {
    led = true;
    digitalWrite(LED, LOW);
  }
  delay(250);
  i++;
  Serial.print(i);
}

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_f042k6]
platform = ststm32
board = nucleo_f042k6
framework = arduino
upload_protocol = dfu
build_flags =
  -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
  -D USBCON

Пример

#include <Arduino.h>
 
//Светодиод на D13
#define LED 13
 
//Кнопка на D5
#define BUTTON 5
 
void setup() {
  //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU)
  pinMode(BUTTON, INPUT);
 
  pinMode(LED, OUTPUT);
  // Запуск USB Device в режиме CDC (виртуальный COM-порт)
  SerialUSB.begin();
}
 
bool led = false;
int i = 0;
void loop() {
  // проверка нажата ли кнопка
  if (digitalRead(BUTTON) == HIGH) {
    //перезагрузка микроконтроллера
    NVIC_SystemReset();
  }
 
  if (led) {
    led = false;
    digitalWrite(LED, HIGH);
  } else {
    led = true;
    digitalWrite(LED, LOW);
  }
  delay(250);
  i++;
  Serial.print(i);
}