Не срослось у меня STM32 с HAL

Nov 27, 2017 23:53

Когда делаешь всё по примерам, где весь код мешаниной лежит в одиноком main.c, всё компилируется изумительно. Но как только добавляется парочка файлов, где хочется использовать глобальный хэндл устройства, компилятор заходит в тупик.

А всё дело в том, что в генерируемом Кубом коде, в main.c инклудится main.h, и в HAL заголовках тоже он инклудится. И делай ты декларирование структур заранее или подключай в main.h HAL, получаешь либо конфликт объявлений, либо необъявленный тип в результате циклического инклуда.

Вижу 2 возможных решения:
1. Отказаться от глобальных хэндлов и спрятать их внутри синглтонов
2. Отказаться от HAL, учитывая, что в случае с UART-ом я его и так практически не использую, кроме как для инициализации, а кроме UART-а компилятор больше вроде на другие части и не ругался.

stm32, программирование

Previous post Next post
Up