Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| boards:sf042 [2024/05/16 19:37] – admin | boards:sf042 [2025/07/19 20:42] (текущий) – admin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Щепа F042 ====== | ====== Щепа F042 ====== | ||
| + | {{ : | ||
| ===== Характеристики ===== | ===== Характеристики ===== | ||
| - | * Микроконтроллер: | + | * Микроконтроллер: |
| - | * Ядро: | + | * Ядро: |
| - | * Частота ядра: | + | * Частота ядра: |
| - | * Флэш память : 256 Кбайт | + | * Флэш память : 32 Кбайт |
| - | * ОЗУ: | + | * ОЗУ: |
| - | * Напряжение питания: | + | * Напряжение питания: |
| - | * Таймеры (4) | + | * Таймеры (6) |
| - | * SPI/I2S (2) | + | * SPI/I2S (1) |
| - | * I2C (2) | + | * I2C (1) |
| * USART (2) | * USART (2) | ||
| * 12-bit АЦП, 10 каналов (1) | * 12-bit АЦП, 10 каналов (1) | ||
| Строка 16: | Строка 17: | ||
| * RTC | * RTC | ||
| * USB Device (Type C) | * USB Device (Type C) | ||
| + | * Выход для подключения отладчика | ||
| + | * Пользовательская кнопка (можно использовать для перехода в режим загрузчика) | ||
| + | |||
| + | ===== Описание ===== | ||
| + | Совместимость по выходам с '' | ||
| + | Для быстрого перехода в режим загрузчика можно активировать прерывание по выводу PB6(D5) (к нему подключена пользовательская кнопка) для этого нужно в функцию '' | ||
| + | <code C++> | ||
| + | pinMode(5, INPUT); | ||
| + | attachInterrupt(5, | ||
| + | </ | ||
| + | [[https:// | ||
| + | ===== Arduino IDE ===== | ||
| + | Для работы с платой в [[https:// | ||
| + | < | ||
| + | {{ : | ||
| + | |||
| + | В менеджере плат установить библиотеку '' | ||
| + | {{ : | ||
| + | |||
| + | Выбрать целевую плату: | ||
| + | {{ : | ||
| + | {{ : | ||
| + | |||
| + | Выбрать режим загрузки скетча: | ||
| + | {{ : | ||
| + | |||
| + | При необходимости подключить поддержку '' | ||
| + | {{ : | ||
| + | |||
| + | Для прошивки контроллера понадобится [[https:// | ||
| + | |||
| + | ==== Пример ==== | ||
| + | <code C++> | ||
| + | // | ||
| + | #define LED 13 | ||
| + | |||
| + | // | ||
| + | #define BUTTON 5 | ||
| + | |||
| + | void setup() { | ||
| + | // | ||
| + | pinMode(BUTTON, | ||
| + | | ||
| + | pinMode(LED, | ||
| + | // Запуск 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, | ||
| + | } else { | ||
| + | led = true; | ||
| + | digitalWrite(LED, | ||
| + | } | ||
| + | delay(250); | ||
| + | i++; | ||
| + | Serial.print(i); | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== PlatformIO VSCode ===== | ||
| + | Для работы с платой в среде [[https:// | ||
| + | Создать новый проект, | ||
| + | {{ : | ||
| + | |||
| + | В файле '' | ||
| + | <code ini> | ||
| + | [env: | ||
| + | platform = ststm32 | ||
| + | board = nucleo_f042k6 | ||
| + | framework = arduino | ||
| + | upload_protocol = dfu | ||
| + | build_flags = | ||
| + | -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC | ||
| + | -D USBCON | ||
| + | </ | ||
| + | |||
| + | ==== Пример ==== | ||
| + | <code C++> | ||
| + | #include < | ||
| + | |||
| + | // | ||
| + | #define LED 13 | ||
| + | |||
| + | // | ||
| + | #define BUTTON 5 | ||
| + | |||
| + | void setup() { | ||
| + | // | ||
| + | pinMode(BUTTON, | ||
| + | | ||
| + | pinMode(LED, | ||
| + | // Запуск 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, | ||
| + | } else { | ||
| + | led = true; | ||
| + | digitalWrite(LED, | ||
| + | } | ||
| + | delay(250); | ||
| + | i++; | ||
| + | Serial.print(i); | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| - | {{ : | ||