Top.Mail.Ru
Уведомления
Очистить все

Язык Си для микроконтроллеров (вопросы новичков)

(@mab72)
Level 1

Всем мирного неба и доброго времени суток. Вопрос:

"склеивание токенов/текста" в макросах.

Нет понимания как собрать строчку из дефайнов. Например задаю:

#define GPIOx GPIOB

#define BUSx AHB2ENR

#define PORT_CLK_EN(a, aa) RCC->##BUSx##_GPIOx##EN

при вызове RCC->BUSx |= PORT_CLK_EN(BUSx, GPIOx); возникает ошибка. Вместо значений дефайнов подставляются имена дефайнов. Обьясните как правильно собрать эту строку.

Цитата
Создатель темы Размещено : 08.12.2023 16:18
(@eduard)
Level 4 Moderator

А для чего такие извращения?

ОтветитьЦитата
Размещено : 08.12.2023 21:34
(@mab72)
Level 1

От: @eduard

А для чего такие извращения?

Ну извращаться хочу с stm32f0 and stm32g4 и там несколько разные шины и т.д.

вот и хотелка что задал порт и шину ну и ...

 

ОтветитьЦитата
Создатель темы Размещено : 08.12.2023 23:36
(@eduard)
Level 4 Moderator

Вы хотите, что бы команды были универсальными?
Всё равно для каждого ядра они будут разные.
Может не стоит городить огород и делать ещё одну надстройку над CMSIS?

ОтветитьЦитата
Размещено : 09.12.2023 11:26
(@mab72)
Level 1

Ок. Пошел думать...

ОтветитьЦитата
Создатель темы Размещено : 09.12.2023 16:26
Поделиться: