diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp
index 0d64e86f53edf1803a84b03955268bf4b72950be..3e890999d628ece45e8fc0f593bfd658e4f1db70 100644
--- a/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp
+++ b/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp
@@ -137,34 +137,28 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
 
 void HAL_timer_enable_interrupt(const uint8_t timer_num) {
   switch (timer_num) {
-    case STEP_TIMER_NUM:
-      timer_enable_irq(STEP_TIMER_DEV, STEP_TIMER_CHAN);
-      break;
-    case TEMP_TIMER_NUM:
-      timer_enable_irq(TEMP_TIMER_DEV, TEMP_TIMER_CHAN);
-      break;
-    default:
-      break;
+    case STEP_TIMER_NUM: ENABLE_STEPPER_DRIVER_INTERRUPT(); break;
+    case TEMP_TIMER_NUM: ENABLE_TEMPERATURE_INTERRUPT(); break;
+    default: break;
   }
 }
 
 void HAL_timer_disable_interrupt(const uint8_t timer_num) {
   switch (timer_num) {
-    case STEP_TIMER_NUM:
-      timer_disable_irq(STEP_TIMER_DEV, STEP_TIMER_CHAN);
-      break;
-    case TEMP_TIMER_NUM:
-      timer_disable_irq(TEMP_TIMER_DEV, TEMP_TIMER_CHAN);
-      break;
-    default:
-      break;
+    case STEP_TIMER_NUM: DISABLE_STEPPER_DRIVER_INTERRUPT(); break;
+    case TEMP_TIMER_NUM: DISABLE_TEMPERATURE_INTERRUPT(); break;
+    default: break;
   }
 }
 
+static inline bool timer_irq_enabled(const timer_dev * const dev, const uint8 interrupt) {
+  return bool(*bb_perip(&(dev->regs).adv->DIER, interrupt));
+}
+
 bool HAL_timer_interrupt_enabled(const uint8_t timer_num) {
   switch (timer_num) {
-    case STEP_TIMER_NUM: return bool(TIM_DIER(STEP_TIMER_DEV) & STEP_TIMER_CHAN);
-    case TEMP_TIMER_NUM: return bool(TIM_DIER(TEMP_TIMER_DEV) & TEMP_TIMER_CHAN);
+    case STEP_TIMER_NUM: return timer_irq_enabled(STEP_TIMER_DEV, STEP_TIMER_CHAN);
+    case TEMP_TIMER_NUM: return timer_irq_enabled(TEMP_TIMER_DEV, TEMP_TIMER_CHAN);
   }
   return false;
 }