| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| boards:sl432 [2024/05/16 21:28] – admin | boards:sl432 [2025/07/19 20:41] (текущий) – admin |
|---|
| ====== Щепа L432 ====== | ====== Щепа L432 ====== |
| {{ :boards:l432-pinout.png?600|}} | {{ :boards:l432-pinout.png?direct&600|}} |
| |
| ===== Характеристики ===== | ===== Характеристики ===== |
| |
| ===== Описание ===== | ===== Описание ===== |
| Совместимость по выходам с NUCLEO-L432KC, USB подключен к микроконтроллеру (GPIO: PA11/PA12) для работы в режиме USB Device или встроенного загрузчика DFU. Для перехода в режим DFU нужно включить питание платы либо активировать RESET с нажатой кнопкой SW1. | Совместимость по выходам с NUCLEO-L432KC, USB подключен к микроконтроллеру (GPIO: PA11/PA12) для работы в режиме USB Device или встроенного загрузчика DFU. Для перехода в режим DFU нужно включить питание платы либо активировать RESET с **нажатой кнопкой SW1**. Для быстрого перехода в режим загрузчика можно активировать прерывание по выводу PH3 (к нему подключена пользовательская кнопка) для этого нужно в функцию ''void setup()'' вставить код: |
| | <code C++> |
| | //Включение тактирования порта GPIOH |
| | __HAL_RCC_GPIOH_CLK_ENABLE(); |
| | //подключение прерывания для вывода PH3, для активации RESET по нажатию кнопки |
| | stm32_interrupt_enable(GPIOH, LL_GPIO_PIN_3, NVIC_SystemReset, GPIO_MODE_IT_RISING); |
| | </code> |
| |
| | [[https://github.com/Kits-Lab-Dev/wood-chips-L432|Github - схемы и примеры]] |
| ===== Arduino IDE ===== | ===== Arduino IDE ===== |
| Для работы с платой в [[https://www.arduino.cc/en/software|Arduino IDE]] нужно добавить ссылку для менеджера плат в меню ''Файл -> Параметры'' в строку: ''Дополнительные ссылки для Менеджера плат'': | Для работы с платой в [[https://www.arduino.cc/en/software|Arduino IDE]] нужно добавить ссылку для менеджера плат в меню ''Файл -> Параметры'' в строку: ''Дополнительные ссылки для Менеджера плат'': |
| {{ :boards:arduino_ide_install_board.png?direct&400 |}} | {{ :boards:arduino_ide_install_board.png?direct&400 |}} |
| |
| Выбрать целевую плату: | Выбрать целевую плату |
| {{ :boards:arduino_ide_select_board.png?direct&400 |}} | {{ :boards:arduino_ide_select_board.png?direct&400 |}} |
| {{ :boards:arduino_ide_select_board_part_number.png?direct&400 |}} | {{ :boards:arduino_ide_select_board_part_number.png?direct&400 |}} |
| |
| Выбрать режим загрузки скетча: | Выбрать режим загрузки скетча |
| {{ :boards:arduino_ide_select_uploads_method.png?direct&400 |}} | {{ :boards:arduino_ide_select_uploads_method.png?direct&400 |}} |
| |
| При необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт: | При необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт: |
| {{ :boards:arduino_ide_select_usb_support.png?direct&400 |}} | {{ :boards:arduino_ide_select_usb_support.png?direct&400 |}} |
| | |
| | Для прошивки контроллера понадобится [[https://www.st.com/en/development-tools/stm32cubeprog.html|STM32CubeProgrammer]] [[https://disk.yandex.ru/d/Fjw2cZVs_fMvog|без VPN]] |
| |
| ==== Пример ==== | ==== Пример ==== |
| |
| void setup() { | void setup() { |
| //Поключение пользовательской кнопки для бысрой перезагрузки и входа в режим загрузчика (DFU) | //Подключение пользовательской кнопки для быстрой перезагрузки и входа в режим загрузчика (DFU) |
| //Включение тактирования порта GPIOH | //Включение тактирования порта GPIOH |
| __HAL_RCC_GPIOH_CLK_ENABLE(); | __HAL_RCC_GPIOH_CLK_ENABLE(); |
| } | } |
| </code> | </code> |
| | |
| | |
| | ===== PlatformIO VSCode ===== |
| | Для работы с платой в среде [[https://code.visualstudio.com/|VSCode]] нужно установить расширение [[https://platformio.org/platformio-ide|PlatformIO]]. |
| | Создать новый проект, выбрать целевую плату и фреймворк: |
| | {{ :boards:platformio_select_board.png?direct&400 |}} |
| | |
| | В файле ''platformio.ini'' добавить строку ''upload_protocol = dfu'' для загрузки прошивки через USB, при необходимости подключить поддержку ''USB CDC'' - виртуальный com-порт добавив ''build_flags = -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC -D USBCON'' : |
| | <code ini> |
| | [env:nucleo_l432kc] |
| | platform = ststm32 |
| | board = nucleo_l432kc |
| | framework = arduino |
| | upload_protocol = dfu |
| | build_flags = |
| | -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC |
| | -D USBCON |
| | </code> |
| | |
| | ==== Пример ==== |
| | <code C++> |
| | #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); |
| | } |
| | </code> |
| | |
| |