Использовать номер таймера в операторе Switch для устройства STM32F4x, использующего GCC - PullRequest
0 голосов
/ 06 октября 2018

При переносе кода C / C ++ из STM32F4x IAR Suite в Systemworkbench.Попытка найти способ использования оператора Switch на основе номера таймера.

Раньше у меня было:

switch ((uint32_t) TIMX) {case (uint32_t) TIM1: __HAL_RCC_TIM1_CLK_ENABLE ();irqType = TIM1_UP_TIM10_IRQn;перерыв;case (uint32_t) TIM2: __HAL_RCC_TIM2_CLK_ENABLE ();irqType = TIM2_IRQn;timerInterruptType = INTERRUPT_SELFTEST_TIM2;перерыв;case (uint32_t) TIM3: __HAL_RCC_TIM3_CLK_ENABLE ();irqType = TIM3_IRQn;

Но компилятор GCC жалуется:

ошибка: reinterpret_cast из целого числа в указатель #define TIM1 ((TIM_TypeDef *) TIM1_BASE) ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~

Проблема заключается в следующей строке: case (uint32_t) TIM1:

Есть ли какие-либо предложения по использованию номера таймера?

...