Ответ в теме: Программирование МК STM32



#14373
Zandy
Участник

Только недавно начал знакомиться с Вашими уроками. Уроки хорошие, слов нет. Но есть небольшие нюансики, о которых и хотел рассказать. Если брать ваши проекты (по ссылке «Исходный код»), то все компилируется, проблем нет. Но мне было интереснее делать все самому в соответствии с Вашими уроками. Тут и появились проблемы, проекты не компилируются. Ошибки, типа «декларация … не определена». Анализ показал, что в вашем и в моем случае разные версии стандартных файлов, которые CubeMX подсовывает в проект (наверное у меня более свежая версия CubeMX). Короче говоря, в одном из таких файлов автоматом присоединен файл main.h (кстати говоря, main.h тоже создается автоматически) со всеми вытекающими последствиями. А последствия такие. В ваших проектах в main.h подключены заголовочные файлы вами созданных файлов с прототипами функций, а так как main.h подсоединен не только к main.с, но и к др. файлам (писал выше), вылазят упомянутые выше ошибки.
Бороться с этим надо так. Подключать «хедеры» только к сишным файлам, а не к другим хедерам. Вообще, в хедерах надо прописывать только прототипы функций, константы, и внешние переменные. Я так думаю, может и ошибаюсь в силу своей неопытности. Если не так, поправьте.