boards:sf042

Это старая версия документа!


Щепа F042

  • Микроконтроллер: STM32F042K6T6
  • Ядро: ARM Cortex-M0
  • Частота ядра: 48 MHz
  • Флэш память : 32 Кбайт
  • ОЗУ: 6 Кбайт
  • Напряжение питания: 2.0 V - 3.6 V
  • Таймеры (6)
  • SPI/I2S (1)
  • I2C (1)
  • USART (2)
  • 12-bit АЦП, 10 каналов (1)
  • GPIO (20)
  • RTC
  • USB Device (Type C)
  • Выход для подключения отладчика
  • Пользовательская кнопка (можно использовать для перехода в режим загрузчика)

Совместимость по выходам с 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 нужно добавить ссылку для менеджера плат в меню Файл → Параметры в строку: Дополнительные ссылки для Менеджера плат:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

В менеджере плат установить библиотеку STM32 MCU based boards:

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

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

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

//Светодиод на 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);
}

Для работы с платой в среде 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);
}
  • boards/sf042.1715942680.txt.gz
  • Последнее изменение: 2024/05/17 13:44
  • admin