В общем это тема для меня пока что не совсем понятна.
Пытаюсь сделать следующее.
Есть функция
Код
GPIO_PinAFConfig(GPIOA, GPIO_PinSource0, GPIO_AF_SPI1);
Здесь GPIO_AF_SPI1 - это тоже некий #define.
И я хочу сделать следующее. В файле настроек иметь что-то наподобие
Цитата
#define LCD_SPI_MODULE SPI1
При этом ключевое слово SPI1 - это тоже макрос на начало области памяти модуля SPI1.
Хочу сделать так
Код
#define GPIO_AF_EXPAND_E(a, b) a##b
#define GPIO_AF_EXPAND(a, b) GPIO_AF_EXPAND_E(a, b)
GPIO_PinAFConfig(GPIOA, GPIO_PinSource0, GPIO_EXPAND(GPIO_AF_, LCD_SPI_MODULE));
Но один фиг не работает так как надо, не получаю я после разворачивания макроса GPIO_AF_SPI1 (пишет Error: L6218E: Undefined symbol GPIO_AF_ (referred from hardware.o).).
Это вообще реально? Логику макросов вообще тут понять сложно, с учетом того, что SPI1 и GPIO_AF_SPI1 - тоже макрос-объекты.
Сообщение отредактировал Arlleex - May 4 2018, 07:51