Ошибка не связана ни с загрузкой, ни с отладкой. Это ошибка сборки .
#error
- это директива про-процессора в коде . Если вы дважды щелкните по одной из этих ошибок, вы, несомненно, перейдете к проблемному коду. По изображению невозможно указать точную причину (вы должны опубликовать текст «Журнал сборки» полностью, а не изображение вкладки «Сборка»), но, несомненно, это будет код, похожий на (опущен ):
#if defined(STM32F405xx)
#include "stm32f405xx.h"
#elif defined(STM32F415xx)
#include "stm32f415xx.h"
#elif
...
#elif defined(STM32F423xx)
#include "stm32f423xx.h"
#else
#error "Unknown Target" <<<< HERE - no target macro has been defined.
#endif
Дело в том, что код HAL поддерживает несколько вариантов STM32, и необходимо установить макрос, идентифицирующий вашу цель, чтобы была построена соответствующая часть кода c.
Если вы создали свой проект с использованием STM32CubeMX или из IAR IDE, в конфигурации будет место, где вы можете указать свою цель. (в случае CubeMX я не думаю, что вы можете что-либо сделать, пока не выберете цель). В противном случае будет какое-то место для определения макросов сборки из командной строки в конфигурации сборки.