Сегодня обнаружил ошибку в Em::Blocks. Актуально для тех, кто, как и я, использует эту IDE. Найденное также справедливо и для EmBitz 1.11, специально проверил.
При создании проекта для STM32F100RB в определениях оказывается STM32F10X_LD_VL (low-density value line), в то время как STM32F100RB в действительности относится к medium-density value line. Это приводит к тому, что stm32f10x.h оказывается сконфигурирован неверно. Например, невозможно настроить SPI2, т.к. соответствующее определение оказывается отключено через #ifdef.
Вот так выглядит строка вызова компилятора (вывод полного пути в HTML-файл включается в настройках):
И, соответственно, поменять на -DSTM32F10X_MD_VL. Как это сделать из графического интерфейса, я не нашел.
Багрепорт разработчику не писал, т.к. не нашел простого способа это сделать. Если кто напишет - будет хорошо.
UPD:
Ошибку можно исправить коренным образом. Настройки устройств лежат в файле devices.xml, который упакован в архив st.zip, находящийся в папке %PROGRAM_FILES%\EmBlocks\2.10\share\EmBlocks\templates\wizard\arm\st (для Em::Blocks 2.10) либо %PROGRAM_FILES%\EmBitz\1.11\share\EmBitz\templates\wizard\arm\st (для EmBitz 1.11).
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения