При переносе кода 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:
Есть ли какие-либо предложения по использованию номера таймера?