Альтернативный способ использовать STM DFU в Arduino 1.8.3 на черном F407Vet6

poiuycat
Пт 06 октября 2017 г. 9:09
Это демонстрация, как использовать STM DFU в Ardunio 1.8.3
Для тех, у кого нет Stlink, нравится скачать VS USB STM DFU Mode

Первая настройка Black F407Vet6 Установите перемычку от PA0 на Boot0
Изображение



Удерживайте кнопку K_UP и подключите кабель USB к ПК.
(Из -за дизайна удерживайте кнопку K_UP, и нажмите сброс, не введет в режим STM DFU)

Выберите инструменты Arduino для STM DFU и нажмите кнопку загрузки.
Изображение

После завершения загрузки MCU будет автоматически сбросить и запустить код.
И вы увидите успешное обновление !
Изображение


продолжать ...... Как настроить STM DFU в Arduino

poiuycat
Пт 06 октября 2017 г. 9:35 утра
Загрузите Master Dfuse Commandline.rar

https: // chackaday.IO/Project/4139-STM32- ... -конвертер



создать каталог в <пользователь>\ Documents \ arduino \ ardware \ arduino_stm32-master \ tools \ win \ stfdu
Расписканность "STFDU"


изменить платформу.txt in arduino \ hardware \ arduino_stm32-master \ stm32f4


Измените компилятор с двоичного на IHEX, потому что требуются инструменты загрузки. compiler.elf2hex.flags=-O ihex compiler.elf2hex.cmd=arm-none-eabi-objcopy

Стивестронг
Пт 06 октября 2017 г. 12:06
[poiuycat - Пт. 06 октября 2017 г. 9:35 утра] - PS: Интересно, как мне сделать серийную работу USB в DFU Скачать.
Вы должны добавить -Dserial_usb в CPU_FLAGS в «Досках.текст": generic_f407v.menu.usb_cfg.usb_dfu.build.cpu_flags=-DSERIAL_USB

poiuycat
Пт 06 октября 2017 г. 12:27
[Стивестронг - Пт 06 октября 2017 г. 12:06 вечера] - Вы должны добавить -Dserial_usb в CPU_FLAGS в «Досках.текст": generic_f407v.menu.usb_cfg.usb_dfu.build.cpu_flags=-DSERIAL_USB

Стивестронг
Пт 06 октября 2017 г. 13:18
[poiuycat - Пт 06 октября 2017 г. 12:27 вечера] - Я попробовал, прежде чем добавить -deserial_usb в CPU_FLAGS, но он вообще не компилируется !!
Пожалуйста, опубликуйте здесь полный выход сборки, включая любое сообщение об ошибке/предупреждении.

poiuycat
Пт 06 октября 2017 г. 13:31
[Стивестронг - Пт. 06 октября 2017 г. 13:18] -
[poiuycat - Пт 06 октября 2017 г. 12:27 вечера] - Я попробовал, прежде чем добавить -deserial_usb в CPU_FLAGS, но он вообще не компилируется !!
Пожалуйста, опубликуйте здесь полный выход сборки, включая любое сообщение об ошибке/предупреждении.
Это полный выход сборки без любой ошибки.
Dserial_usb.текст
(81.77 киб) скачано 256 раз

Стивестронг
Пт 06 октября 2017 г. 13:44
Вы написали это это вообще не будет! И я ожидаю, что вы покажете нам, почему это вообще не компилируется, покажите нам сообщения об ошибках.

Или вы имеете в виду, что USB -сериал не будет работать?

poiuycat
Пт, 6 октября 2017 г. 13:46
[poiuycat - Пт 06 октября 2017 г. 13:31] -
[Стивестронг - Пт. 06 октября 2017 г. 13:18] -
[poiuycat - Пт 06 октября 2017 г. 12:27 вечера] - Я попробовал, прежде чем добавить -deserial_usb в CPU_FLAGS, но он вообще не компилируется !!
Пожалуйста, опубликуйте здесь полный выход сборки, включая любое сообщение об ошибке/предупреждении.
Это полный выход сборки без любой ошибки.
Dserial_usb.текст
Я нашел что -то странное !!
Если я прокомментирую
// серийный.начало (115200);
// серийный.println ("OK!!!!!!!!!!");
Полная сборка будет хорошо, и STM Serial вышел

Если я использую Serialusb или Serial Complete Build OK, но не работаю
Serialusb.начало (115200);
Serialusb.println ("OK!!!!!!!!!!");
Serialusb не работает.текст
(81.77 киб) скачано 217 раз

Стивестронг
Пт 06 октября 2017 г. 14:30
Я всегда использую задержку в 1000 мс прямо в начале настройки, прежде чем вызовать серийный начало: void setup() { delay(1000); // seems to be needed Serial.begin(115200); Serial.println("bla-bla"); ... }

poiuycat
Пт 06 октября 2017 г. 15:37
Стивестронг,

После нескольких раундов тестирования и да, это работает на вас репо, но не работает над репо Роджером

еще раз спасибо. :ржу не могу:

poiuycat
Пт 06 октября 2017 г. 15:51
Это мой пример кода, и я обнаружил, что если я закрою серийный монитор, несколько минут, программа перестанет мигать, когда я открою монитор, он продолжит работать.
Я вещь из -за полного серийного буфера USB или чего ... это ошибка или нормальная ? Как я могу проверить USB -буфер заполнен, когда он не может отправить данные ? Поскольку обычно серийная система HW не заботится, пользователь получает данные или нет, кроме USB ?
byte LED_BUILTIN2 = PA7; byte LED_BUILTIN1 = PA6; // the setup function runs once when you press reset or power the board void setup() { //setupUSB(); // initialize digital pin LED_BUILTIN as an output. //delay(3000); SerialUSB.begin(115200); //delay(3000); SerialUSB.println("OK!!"); pinMode(LED_BUILTIN1, OUTPUT); pinMode(LED_BUILTIN2, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN2, HIGH); // turn the LED on (HIGH is the voltage level) SerialUSB.println("OK!!"); delay(100); // wait for a second digitalWrite(LED_BUILTIN1, HIGH); // turn the LED off by making the voltage LOW SerialUSB.println("OK!!"); delay(100); // wait for a second digitalWrite(LED_BUILTIN2, LOW); // turn the LED on (HIGH is the voltage level) SerialUSB.println("OK!!"); delay(100); // wait for a second digitalWrite(LED_BUILTIN1, LOW); // turn the LED off by making the voltage LOW delay(100); // wait for a second }

Стивестронг
Пт 06 октября 2017 г. 16:09
Poiuycat написал:После нескольких раундов тестирования и да, это работает на вас репо, но не работает над репо Роджером

Андисимоны
Сб 29 сентября 2018 11:50
Привет,
Я новичок на форуме и заинтересован в этой теме, потому что я хотел бы сделать аналогичную вещь с другой доской F4 (см. Мои сообщения STM32F407VGT6). В идеале, я хочу сделать это как «подключи и играть», как любая плата Arduino с интерфейсом USB: я.эн. Я хотел бы загрузить программу через USB, а затем открыть последовательный канал на хост для диагностического вывода в окно последовательного монитора Arduino.
Я работаю над Mac OSX с последними версиями ОС, Arduino IDE и определения доски Роджера Кларка.
  • Мой первый вопрос восходит к тому, что происходит до начала инструкций в начале ветки. Я установил DFU-UTIL и могу запустить его из терминала.Приложение, но я не вижу «STM DFU» как опция загрузки в IDE. Есть ли еще один шаг, чтобы связать утилиту DFU в IDE? Нужна ли мне дополнительная программа, такая как DFU-Programmer / Dfuse?
  • Поскольку я не знаком с платой, которую вы используете, можете ли вы объяснить значимость подключения PA0 с Boot0?
  • ... и что делает кнопка "k_up"?
Ваше здоровье,
Энди

Стивестронг
Солнце 30 сентября 2018 г., 7:30 утра
Вы должны продолжать с инструкциями из второго поста.
Чтобы поместить STM32 в DFU MOE, вам нужно установить Boot1 на высокий. Это делается над PA0.
K_UP - это кнопка, которая подключена к PA0/W_UP: http: // wiki.STM32duino.com/images/5/5c/ ... Эматический.PDF.
Поэтому, если вы нажмите K_UP, это будет держать чип в режиме DFU после сброса.

Андисимоны
Ср. 03 октября 2018 г. 12:39
Ах. Интересный. Таким образом, вы просто используете клавишу K_UP, чтобы установить BOOT0 на 1, которое является значением, необходимым для загрузки. Вы используете этот ключ, потому что это единственный, кто подтягивается; Двое других обрушиваются. Вы должны подтянуть его, потому что на платке Boot0 и Boot1 и по умолчанию вытянут. K_UP подключен к одновременно активировать PA0/WK_UP, выводя его из резервного режима, если применимо, но я думаю, что это не имеет значения здесь?

«Моя» доска отличается в этом Boot0 и Boot1 вверх по умолчанию. Джамперы используются, чтобы вытащить их, когда это необходимо. Насколько я понимаю, нам не нужно ничего делать с PA0, так как регулятор внутреннего питания в любом случае будет включен (uspass_reg не доступен на F407V - I.эн. 100-контактные пакеты). Так что я думаю, что я могу просто запустить процедуру DFU с помощью перемычки на Boot1, чтобы вытащить ее и установить режим «загрузки из системной памяти»; Затем переключите перемычку на Boot0, чтобы установить режим на «загрузку из флэш -памяти», которая является той же процедурой для любого метода загрузки.

Спасибо за разъяснение.

Энди

[libmaple] sdio