@kama, куча вопросов, - у вас точно CBT6 (а не C8T6 )процессор, плата самодельная или некий devboard? - у F103 серии нет аппаратного DFU, поэтому нужно предварительно прошить STM32duino bootloader (после чего Windows будет определять плату как MapleSerial/MapleDFU); - если у вас есть ST-Link или USB-UART можно прошить с их помощью.
Подозреваю, что плата такая: Они сейчас чуть ли не монополизировали этот рынок, ибо дешевы и хороши. В этом случае в компиляторе плата выбрана неверно. И не факт что все остальное верно выбрано. Вот тут надо почитать и повторить.
На STM32F103CBT6 собраны клоны Maple Mini по 4$ https://ru.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/32214664071.html У них кроме большего размера Flash, прошитого загрузчика, отдельных стабилизаторов цифровой и аналоговой части контроллера, еще и узел USB сделан с ключевым транзистором (не требуется передергивать кабель после прошивки)
Это Maple Mini. Я с не не работал, не уверен что она похожа на мои, но подозреваю, что бутлоадер там таки есть и прошивать ее проще так же не через usb, а через RX-TX. Вот Zaz сейчас придет и скажет точно. Кстати, выписал себе из Китая таких, попробую их тоже.
@kama, я оригинальную LeafLabs Maple Mini программировал выбирая в Arduino плату Maple Mini + Botloader_2.0.Попробуйте в клоне Maple Mini выбрать такие же настройки. У Maple Mini и generic STM32F103CB как минимум разные смещения загрузчика Код (C++): ## Maple Mini ------------------------- mapleMini.menu.bootloader_version.bootloader20.build.vect=VECT_TAB_ADDR=0x8002000 mapleMini.menu.bootloader_version.bootloader20.build.ldscript=ld/bootloader_20.ld ## STM32F103CB ------------------------- genericSTM32F103C.build.vect=VECT_TAB_ADDR=0x8000000 genericSTM32F103C.menu.device_variant.STM32F103CB.build.ldscript=ld/jtag.ld
Maple Mini прошивается. И китайская STM32F103C8T6 тоже прошивается - только bootloader прошить надо и резистор USB подтяжки на 1,5кОм перепаять.
У STM32F103C8T6 есть аппаратный Boot from System Memory, а Roger Clark написал программный STM32duino-bootloader Здесь есть wiki и фото доработки http://wiki.stm32duino.com/index.php?title=File:BluePillUsbResistor.jpg
Лучше всего, конечно, шить и отлаживать через ST-link. Мне STM32duino-bootloader понравился тем, что не нужно переключать джампера на плате, как для USB-UART способа. Плюс, если дело дойдет до готовой конструкции, можно оставить на корпусе один только микро ЮСБ для питания, перепрошивки и связи с ПК.
Ну то есть если для готового изделия, которое прошивается один раз и перемычка выставляется в положение 1 навеки (или до перепрошивки) это и не нужно.
Еще вопрос. Набортный USB можно ли задействовать для обмена данными и ПК в том виде как он с фабрики?